DIY Dynamic DNS with Netlify API and Bash
blog.skylerlewis.ioThis can be done with the Cloudflare free plan easily, so long as you use Cloudflare as your DNS. You just make an authenticated API request to make the DNS update, and there are off the shelf tools to automate this in the background if you don’t want to roll your own.
I do the same with route53, a small Python script runs on a Raspberry Pi to get the IP address and then updates the domain record through the API.
Author of one of the tools you tried here. Would love to know what issues you had with it since this basically sounds like how I've been using my tool as well (just run through a cron job). Is it just the fact you need to install using cargo? Or, did you encounter some bugs?
Hi! I've been trying to stick with apt for installing stuff on my Pi to make software updates easier, so yeah, installing via Cargo was something I was leaning away from. No bugs to report. Thanks for sharing your tool!
Got it :). Thank you for sharing yours as well!
My TP Link router has a free dynamic DNS service available, but the DNS configuration they use fails on roughly 50% of the DNS resolvers I've tested. I use a free-tier Google Cloud f1-nano instance running cron to resolve TP Link's DNS using 1.1.1.1 resolver, then updating my DuckDNS account with the IP address. It's kind of annoying that its necessary, but it was a little fun to set up everything.
DynDNS53 [1] + cron script every 5 minutes
[1] - Run your own dynamic DNS service with Amazon Route 53 https://github.com/agorf/dyndns53
Also along these lines, with support for a lot of different DNS providers:
I wrote an AWS Lambda for this. It’s been running for nearly two years now and I’ve never broken through the free tier.
I am running the Bash script from the linked blog post on my local Raspberry Pi. Is your Lambda for pointing back to your home network? If so, that is awesome that you can do that using a remote service. If you don't mind sharing, how does it work?
Instead of using DynDNS my router at home is configured to hit an alternative url, the lambda. Every hour it pings my lambda with its current public IP. The lambda then uses my actual DNS provider’s API to update the record.
It seems the format of DynDNS HTTP posts is baked into a lot of products but obviously not every provider supports it
A server at home connects via curl to my mail server outside every n minutes, where iptables logs the access to syslog where a script extracts the dynamic address.
If one doesn't need or have a full blown server available, a cheap cloud server like the ones Hetzner offers for less than 3€/month should do.
I did something really similar to this! It's a tiny bash script and systemd-timer (like a cron job): https://github.com/lytedev/netlify-ddns
Oh, wow! My little repo is mentioned at the bottom here: https://github.com/lukehsiao/netlify-ddns-rs
It's very similar to yours, so I recommend you check it out!
when we can get cheap symmetric fiber connections in residential is when I'll start thinking about running services at home.