Skip to content
This is a sample repository for integration testing.
DIGITAL Command Language
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
zones Merge branch 'master' of Sep 14, 2017


This repository is an example used to demonstrate the git-based DNS hosting service, which allows you to maintain your DNS records in a git repository.

If you have a dns-api account you'll be given a git repository which you can use to make changes to hosted domains:

  • You can either use the provided git repository exclusively, cloning it, committing changes, and pushing them back to it.
  • Or you might prefer to host your repository on github, bitbucket, or even internally, and add the hosted-repository as a git-remote.

On the back-end your DNS is handled by Amazon's route53 infrastructure, giving you diverse, replicated, and highly-available DNS hosting.


Regardless of where you host your DNS-data the moment you push to the hosted repository a hook will fire, which will trigger updating your DNS records.

There is no need to configure a webhook, confirm any integration, or deal with anything complicated:

  • You push your DNS repository.
  • Your DNS records are updated.

The only thing you need to do is create one file for each domain you wish hosted, beneath the top-level zones/ directory. Each file there will be scanned for DNS records, when the push event is triggered.

Zone Format

When a push-event is received the remote service will initiate a scan of each file beneath the zones/ directory - and each zone there will be added to DNS. The files must be named after the zone they represent, to allow domains to be identified cleanly.

The zone-format is a simplified version of the TinyDNS format, which allows you to define records in a simple line-based fashion:

  • Lines prefixed with "#" are comments, which are ignored.
  • Lines prefixed with "+" are A records.
  • Lines prefixed with "6" are IPv6 records.
  • Lines prefixed with "@" are MX records.
  • Lines prefixed with "C" are CNAME records.
  • Lines prefixed with "T" are TXT records.
  • Lines prefixed with "_" are SRV records.

The general form of each line is "type : name : value : TTL", and the two sample files should provide useful reference.

There is a simple online DNS wizard which will allow you to generate a basic zonefile, covering the most basic cases.

Feel free to get in touch if you have queries, comments, or problems.


If you're unsure about how your record(s) will be parsed you're welcome to test them online, via the zone-tester:

Otherwise you can use the OpenSource module we published, which will allow you to validate the records locally.

NOTE: Don't worry about the record format too much, it is unlikely you'll need to validate records once you've studied the examples.


We welcome suggestions for additional record-types to support, or other comments. Just drop us a mail.

You can’t perform that action at this time.