LinodeDynamicDns.js is a tool which allows you to easily update your Linode
DNS records for multiple hosts and domains with your local IPv4 and IPv6 addresses.

Please note that this isn't the kind of project that regularly needs updates. Unless I
clearly say otherwise it remains supported because I rely on it myself. If it breaks
I will fix it.


  1. npm install -g linode-dynamic-dns-js
  2. Create a Linode API token (https://cloud.linode.com/profile/tokens) with read/write permissions
    on the Domains scope. Use this token in Step 3.
  3. Create a configuration file called linode-dynamic-dns-js.config.json in the /etc directory of your
    system, based on the example file found in example/linode-dynamic-dns.example.json (or in the Config
    Example section).
  4. Add the following cronjob via crontab -e:
    0 */24 * * * CONFIG_FILE=/etc/linode-dynamic-dns-js.config.json linode-dynamic-dns-js

Config Example

    "token": "LINODE_API_TOKEN",
    "ipv4Url": "https://ipv4.icanhazip.com/",
    "ipv6Url": "https://ipv6.icanhazip.com/",
    "domains": [
            "host": "subdomain1",
            "domain": "example.com"
            "host": "subdomain2",
            "domain": "example.com"
            "host": "",
            "domain": "example.com"


NPM Package
Git Repo