2.3 KiB
title | date | toc | images | tags | ||
---|---|---|---|---|---|---|
Hosting websites without a static IP with Gandi LiveDNS | 2022-12-29T18:11:42-05:00 | false |
|
I've been hosting this website at home now for a few years. My ISP doesn't offer a static IP address however, which means my IP address occasionally changes. This is sort of a dealbreaker, because your domain will be left pointing to the wrong address whenever your IP address changes. Luckily you can solve this by using a dynamic DNS solution, like DynDNS, but these can be pretty pricy.
Which is why I was very excited when I saw gandi.net has a system they call "LiveDNS" which allows you to update the IP address your domain points to very quickly. Their website advertises that updates are propagated in under 250ms which is amazing. Although other DNS servers may cache results and not update for significantly longer, that's not a massive issue for me. My IP address doesn't change that often, and my personal blog having a short downtime is not a big deal.
Gandi provides this service at no additional cost, all you need to do is to register your domain with them (or transfer it over). I've been using them for years and have had great service, and the LiveDNS is the cherry on top.
Updating your IP
Unlike some other dynamic DNS providers, Gandi does not provide a program that you can use to update your IP address. But being an open API, there are many programs and scripts you can use to update your IP. One of these is a program I made, gandi-live-dns-rust.
After installing gandi-live-dns
on my home server (I used the ArchLinux
package, but there are other options available), I copied over the
example configuration
in the repository. I just added my domain, obtained an API key and set it up, then I just added the subdomains I want.
fqdn = "bgenc.net"
api_key = "key goes here"
[[entry]]
name = "@"
types = ["A"]
[[entry]]
name = "gitea"
types = ["A"]
[[entry]]
fqdn = "kaangenc.me"
name = "@"
types = ["A"]
The configuration file is a bit trimmed, but it shows the gist of everything.
I'm updating bgenc.net
, along with gitea.bgenc.net
. I also update
kaangenc.me
, which is an old domain I was using.