diff --git a/.vscode/settings.json b/.vscode/settings.json index dbb27a9..9fa4553 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,3 @@ { - "cSpell.words": [ - "Actix" - ] + "cSpell.words": ["Actix", "Gandi"] } \ No newline at end of file diff --git a/content/posts/2022.12.29.hosting-websites-without-static-IP-Gandi.md b/content/posts/2022.12.29.hosting-websites-without-static-IP-Gandi.md new file mode 100644 index 0000000..a365ac6 --- /dev/null +++ b/content/posts/2022.12.29.hosting-websites-without-static-IP-Gandi.md @@ -0,0 +1,63 @@ +--- +title: "Hosting websites without a static IP with Gandi LiveDNS" +date: 2022-12-29T18:11:42-05:00 +toc: false +images: +tags: + - web + - homelab +--- + +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](https://www.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](https://github.com/SeriousBug/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](https://github.com/SeriousBug/gandi-live-dns-rust/blob/master/example.toml) + +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.