ez-dyndns-rs
ez-dyndns-rs is a suite of easy-to-use dynamic DNS clients that require minimal configuration and "Just Work".
This is important in any homelab environment where you want to grant access to your servers via a domain name but don't get a static IP address from your ISP (Internet Service Provider). Even if you check and don't see any IP address changes over a longer timespan, it's always a possibility.
I wrote ez-dyndns-rs 100% in Rust to replace an earlier dynamic DNS client I had developed years ago (using Java and Spring Boot).
Compared to the earlier Java-based implementation the new Rust-based client only uses a fraction of the RAM and storage.
I am aware there are free offerings for dynamic DNS out there, but you know what they say:
If it's free, you are the product!
And most paid dynamic DNS offerings I've found start at USD 10 per month or more, with my own implementation I can update DNS records hosted on AWS (Route53) and LiveDNS (Gandi) for only a fraction of the cost. My current monthly bill for AWS Route53 is around USD 1.80.
Considering the time I've put into developing my new client and getting deeper into Rust at the same time I'd call that a bargain!
So far the my client has been running on my servers without interruption for over a year and I haven't run into any issues yet and I'm still running its first release (no fixes needed since).
If you want to give it a try just look up the configuration details on GitHub and fetch the Docker image here.
P.S.: I designed the internal architecture to be easily pluggable, you just need to implement the part where you communicate with your DNS service and ez-dyndns-rs takes care of the rest.