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:
[slicehost] api_key=your_slicehost_api_key_here domain=thedomainyouwanttoupdate.com 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 @IP part should be whatever replacement string your router wants to use. @IP happens to be what Tomato uses.