view the rest of the comments
Selfhosted
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:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Emphasis on "a bit," it truly is a simple task to automate. I don't think that anyone who has need for dynamic DNS should realistically have much trouble tackling that problem.
For anyone who might attempt this and isn't sure how, here's what you need. You need a service controlling your domain with API support for updating your DNS records - some have been mentioned here, I just use gandi.net. You need to enable the API for your account/domain. Figure out how to run the command you need against the API from a scripting language of your choice - there should be documentation for the API, and it should be a single API call. Figure out how to determine your server IP from within the same scripting language. Then, write your simple script that determines the right IP and updates the record if it doesn't match.
All you need to do then is automate running the script - on Linux, a cron job or a systemd service and timer.
My go to way to figure out my public IP address is
curl ip.me
. Very handy and easy to remember.My router actually has a UPnP API that I can request and get my external IP, which I like so I can poll it every few seconds and not worry about rate limiting or something.
Meanwhile, my ISP would often rotate their customer behind their CGNAT, so the IP address from the routers upnp would often return 10.x.x.x . One of the main reason I gave up using dynamic DNS and use Tailscale instead.
Port forwarding wouldn't work anyway with CGNAT, so I don't think that's much of an issue.