GitHub - se1exin/Vultr-Dynamic-DNS: Free Dynamic DNS on any TLD. Use Vultr.com's free DNS hosting as your own free private dynamic DNS provider

2 min read Original article ↗

Use vultr.com's free DNS hosting as your own free private dynamic DNS provider - using any TLD you own!


How To:

  • Install Python 3 - https://www.google.com.au/webhp?q=how%20to%20install%20python%203
  • Create an account at Vultr.com (if you haven't already)
  • Log in and go to the DNS tab
  • Add your root domain and give it an IP - 192.168.1.1 will do just fine, the script will update it (if you choose to use your root domain as your Dynamic DNS domain)
    • [optional] Within that root domain, add a new subdomain A record that will serve as your Dynamic DNS domain
      • You'll need to give it an IP - 192.168.1.1 will do just fine, the script will update it
  • (Outside of Vultr) Set your root domain's nameservers to ns1.vultr.com and ns2.vultr.com (Ask your domain registrar for how to do this)
  • (Back in Vultr) Click on your username (top right) and go to the API menu option
  • Enable API access and generate an API Key
    • Underneath 'Access Control' click 'Allow All IPv4' - this is essential as your IP is obviously undetermined (hence why you are using the script..)
    • If you enabled IPv6 for your instance and your host OS prefers IPv6, you may need to click "Allow All IPv6"
  • Copy your API key into the update script 'api_key' variable
  • Enter your root domain into the update script 'root_domain' variable
  • Enter your subdomain the update script 'target_record' variable, or leave it blank id you are using your root domain for your Dynamic DNS
  • Save that shiz and run the following in your terminal/Windows wannabe blackbox:

python update.py


Log your output to Slack

If you use Slack you can send your updates to a Slack Channel using Incoming Webhooks Just add your webhook URL into the slack_webhook_url variable and you will get notified when your IP changes, or if any errors occurred while updating


Automate for realz:

If your using a *nix system, add this to your crontab to update every hour:

0 * * * * python /path/to/where/you/saved/update.py >/dev/null 2>&1

If your not using a *nix system, start using a *nix system; Alternatively, look elsewhere for Windows help, you won't find it here.