Any registrar worth using has an API for updating DNS entries.
I just found this with a quick search: https://github.com/qdm12/ddns-updater
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Any registrar worth using has an API for updating DNS entries.
I just found this with a quick search: https://github.com/qdm12/ddns-updater
exactly. I literally have a bash script that calls the API triggered by cron every 30 minutes. That's it. Are people seriously using a freaking docker container for this?
It's easy to set up and also keeps a history
Ah, a history would be nice. I've been thinking of keeping some stats to monitor when the connection goes down, and how often my IP changes.
Fortunately I've kept the same IP since i changed ISPs a few months ago.
Personally I still think docker is overkill for something that can be done with a bash script. But I also use a Pi 4 as my home server, so I need to be a little more scrupulous of CPU and RAM and storage than most :-)
I just dump the changes with timestamps to a text file. Notifications for IP changes get sent to matrix after the DNS record is updated.
I would recommend OVH for DNS, they have an API and are on the list for that tool. Also you can use the API to get lets encrypt certificates
Looks good. Thanks!
I use http://www.duckdns.org/
Me too. I use uptime kuma to send the api request. then I also get uptime status 🙂
That's a great idea, I hadn't thought of that
cloudflare + the dynamic dns plugin for opnsense.
Have done it via bash scripts for years. Never had a problem. Since a few months i use https://github.com/qdm12/ddns-updater
Ixury for people that can have public IPs! :)
Yup, CGNAT blows.
It's why IPv6 is important, but many didn't listen.
@chronicledmonocle @sugar_in_your_tea This is why I love yggdrasil. Thanks to having a VPS running it that all of my hosts globally can connect to, I can just use IPv6 for everything and reverse proxy using those IPv6 addresses where I need to. Once hosts are connected and on my private yggdrasil network, I stop caring about CGNAT or IPv4 at all other than to maybe create public IPv4 access to a service.
Yeah, there are workarounds... And who knows, maybe its just safer than public ip... But definitely require some external fixture.
I guess you already know about the options, but for others:
Find the cheapest VPS out there and have a Wireguard tunnel between it and your home network. Run ddclient or similar on the VPS in case the public IP changes.
afraid still works like a charm. cloudflare is ok. duckdns is cool.
I solve it by paying way too much for a block of static IPs.
Way too much for sure.
Just the business internet to get the foot in the door for a static IP 5x's the cost of my Internet.
It's actually cheaper to just have DC IPs and proxy through hosted containers. Which is kind of crazy.
Negative aspect is that DC IPs aren't treated very nice.
Yeah this has been the biggest problem with hosting. For SMTP to work outbound you gotta have a good static IP. Everything else can be DDNSed. So either you get a business class connection or proxy through a VPS front end.
Afraid has a curl update. Cron job. It's that simple.
used a bash script and a cron job for a long time, now the whole topic is one of the projects i regularly rewrite whenever I want to get my hands dirty with a new programming language or framework.
My ip updates maybe once every three months or so, but what i did was just write a script that checks the current ip and updates the domain registrar. My domain is on cloud flare, and they have an API through which I can do it. It's literally one POST request. There are solutions out there but I wanted a really simple solution I fully understand so I just did this. Script runs in cron every few hours and that's it.
Ddclient has done the trick for me, and my registrar supports it with an API
I set it once like 6 years ago and forgot it wasn't something pre-installed and configured until I saw your comment. I was reading through the comments looking for the "you don't need to do anything, ddclient takes care of it"
Ddns-updater and porkbun.
Have you heard of the kuadrant project? It is for kubernetes and has a dynamic DNS element. Kuadrant.io
Probably good, but I want to stay away from anything related to Kubernetes. My experience is that it's an overkill black hole of constant debugging. Unfortunately. Thanks though!
Interesting, this seems to have better documentation and feedback than the external-dns operator
Cloudflare DDNS updated by ddclient on my OpnSense router. Cloudflare happens to be my current domain registrar. Honestly, my IPv4 doesn't change that often. And when I used to be on Comcast, they assigned a block of IPv6 addresses and the router dealt with that. Unfortunately, I now have Quantum Fiber who only assign a single IPv6 address, so I gave up on IPv6 for now.
What do you mean?
I would go for registering my own domain and then rent a small vps and run debian 12 server with bind9 for dns + dyndns.
If you don't want to put the whole domain on your own name servers then you can always delegate a subdomain to the debian 12 server and run your main domain on your domain registrators name servers.
edit:
If your registrar is supported the ddns-updater sounds a lot easier.
Desec + Nginx Proxy Manager as a reverse proxy. Solves ddns and https with a letsencrypt wildcard cert.
Hadn't heard about deSec until now, seems to be run by some cool privacy minded folks in Germany:
Tor hidden service
@sith
If this is useful we had a bit of a conversation about DynDns options a while back. Im currently using Hetzner with my subdomain names being dynamically updated.
lemmy.ml/post/18477306
If you don't need actually public DNS, something like Tailscale might be an option.
my router uses openwrt which supports dynamic DNS updating on its own for multiple providers, I currently am through namecheap on it.
terraform and AWS route 53 on a self hosted gitlab pipeline.