1. Paul McLanahan
  2. linode-dynamic-dns


linode-dynamic-dns /

Filename Size Date modified Message
1.5 KB
1.9 KB
2.7 KB

Slicehost Dynamic DNS Client


The only external dependency is PyActiveResource. Installation is easy:

sudo pip install pyactiveresource


This has been tested on Debian/Ubuntu servers running Apache2. Apache2 comes pre-configured in Debian-based systems to use /usr/lib/cgi-bin as the global cgi-bin. Symlink slicehost.py into that directory to create the url:

cd /usr/lib/cgi-bin
sudo ln -s ~/path/to/slicehost.py

You may also have to make sure that slicehost.py is executable:

chmod +x slicehost.py

After that you should be able to hit the url http://host/cgi-bin/slicehost.py. If you go to that URL, it should simply say error since you didn't give it an IP, and you don't have a config yet. Let's remedy that now:

sudo vi /etc/slicehost_ddns.conf

Into this file add the following information:

names=www mail

You can find your api_key in the API Access area of your Slicehost management console.

The names entry is optional. By default, the script will update the A record corresponding to the base domain.

After this, you can setup your router to use a custom url for its Dynamic DNS service. The only prarmeter you'll need to pass to the CGI is ip, and that should obviously be the external IP you wish your DNS record to have:


In this example, the Marian Rudzynski part should be whatever replacement string your router wants to use. Marian Rudzynski happens to be what Tomato uses.