I’ve been thinking about finally getting myself a proper domain for my server, but a friend told me that to get one I either need a VPS with a public ip (which just takes all the fun out of selfhosting) or purchase a static ip, which is beyond what I’m willing to spend for a hobby. Do I have any good options or should I just let it go?
Also, if this isn’t the correct community for this, I’d appreciate being pointed to the right one, thank you
You might want to try out Tailscale. It’s a mesh network overlay that you can either share easily within your tailnet or out to the greater internet with funnel (sorta like cloudflare tunnels, but somewhat better at respecting privacy). It’s also possible to self host the controller, so you don’t have to depend on a third party.
Nobody else mentioned DuckDNS. It’s free and has worked great for me for years.
You’ll need to install a client that syncs/auto-updates your public IP, then pretty much never touch it again.
It is possible to use a dynamic DNS service. They’re typically pretty cheap. I did for several years. It kind of sucked so I rented a VPS.
In what way did it suck?
Keeping hardware running 24/7 cheaply is difficult. Expanding an existing setup is expensive. Consumer grade ISP’s will block unexpected network protocols sometimes seemingly for no reason. Dynamic DNS isn’t super robust, so several times I went on vacation and the DNS service would flake. Maybe it’s better if you pay more for it, but I have no complaints about my VPS. It’s nice to be able to just reliably reach my web stuff and not worry a cat bumped the power cable.
I believe cloudflare has some sort of tunneling option but I’ve never really looked into it, it might get around that.
It does, yeah. If you aren’t averse to cloudflare then it’s a great option.
From memory I think it’s limited to http/https traffic, but that’s normally not an issue, just have all your services behind a reverse proxy.
If you already have a domain name and don’t want to switch to something else, know that some DNS registrar have an API to handle the domains. For a short period of time I had to rely on this and had a little python script to get my current IP and apply it to every A record in my DNS zone.
It worked well (but then Itook an arrow in the kneehad static IP)I don’t have a static IP, and I just make sure to never ever let my DHCP lease expire. My ISP provides the same IP to the same MAC when renewing the lease. My longest streak on the same IP was three years.
As long as I always turn my router off by cutting the power, it won’t release the lease, so I keep my IP even through reboots. My last one didn’t release the lease at all, so it only ever got a new IP if it was off for over a day, or if I set a new MAC…
When my IP does change, I’ve configured my DNS record to only last an hour. So updating the domaim to point to a new IP only takes an hour to update.
If you only need it to be accessible inside your home, then you just need to run your own DNS. Have your dhcp point at your DNS and your DNS declare itself the master for your domain.
To get full functionality, you’ll probably want to have your registrar point to the public IP you get from your ISP as the domain’s authoritative name server.You should be able to script it to update the registrar when your ISP changes your IP, but that usually happens infrequently enough to do manually. Obviously can’t do that if you’re behind CGNAT.
To get Lets Encrypt certificates, you can do the DNS challenge. If your ISP gives you a (even inconsistent) public IP, you can do fancy ‘views’ with your selfhosted DNS, where it responds with private IPs inside your network and your ISP-given IP outside your network. I have certbot set up to expose my DNS & web server just before it starts its renewal process, then close the firewall after. Once you have the certificate, you can move it to where ever it will actually be used.

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System IP Internet Protocol VPS Virtual Private Server (opposed to shared hosting)
[Thread #181 for this comm, first seen 18th Mar 2026, 09:30] [FAQ] [Full list] [Contact] [Source code]
If your home IP does not change often, you can use a dynamic DNS service. But your services will be unavailable from the time that your IP changes and the time the DNS record is updated and the cached responses expire.
Do you need to update your (Let’s Encrypt) certificates after an ip change?
I use OVH for all things DNS, TIL: they have a dynhost thing that will do all the DNS updating for you!
https://help.ovhcloud.com/csm/en-gb-dns-dynhost?id=kb_article_view&sysparm_article=KB0051640
If you’re self hosting you could even use https://github.com/qdm12/ddns-updater and skip a third-party service (if your registrar accepts dynamic entries)
Our setup uses a domain pointed at a dynamic (but stable) IP with a script to update it periodically
DynDNS is your friend.
You don’t have any great options but you do have some options. You’ll need dynamic DNS, which you can get for free by various providers. This will manage a “dynamic” DNS entry for your occasionally changing, non-static IP at home. The dynamic DNS entry won’t be on your own domain name, it will be on the provider’s domain name. But wait! That’s just step one.
You can still get your own, fully-functional domain name, and you can have all the domains and subdomains you want, and set them up however you want, with one important restriction: You can’t use IP addresses (because yours is dynamic, and changes all the time and you would have to be constantly updating your domain every time it does, and there would be delays and downtime while everything gets updated).
Instead, your personal domains have to use CNAME records. This substitutes the IP from a different domain INTO your domain. So you CNAME every entry on your own fancy domains to point at your dynamic DNS provider, which manages the dynamic part of the problem for you and always gives the real IP you need. Nobody sees the dynamic DNS name, it’s there, but it’s happening behind the scenes, they still see your fancy personalized domain names.
It’s still not going to be perfect, it won’t work well or at all for certain services like email hosting (self-hosting this is not for the faint of heart anyway) that are very strict about how their DNS and IP addresses need to be set up, but it will likely be good enough for 99% of the stuff you want to self-host.








