I'm trying to self-host some stuff on my Raspberry Pi (i.e. web server, lightweight matrix server, etc) and every time I get around to try and set it up I forget that I have to do this lol
Do you guys recommend going full send and contacting my ISP about a static IP or should I just pay for a Dynamic DNS service?
I have a dynamic IP and have been using it for years. I also host my own mail server on a VPS using miab which provides my DNS. My router supports pushing DDNS changes, so as soon as my IP changes, I'm able to update my external DNS and everything is all good.
If you can reliably update an external DDNS service, I can't see paying for a static IP for your self-hosted stuff.
There are already tools existing for dyndns that are free. If you're using cloud flare as your dns provider, there's cloudflareddns that checks your public ip and updates dns records. You just need 1 record to be updated, the other records can just be CNAME to that primary one.
OVH has DynHost to deal with that as well.
You could also write a script to do that with your own DNS provider if one doesn't exist yet. Most have good APIs you can use to that extent. At worse just use cloudflare since it just works and is well supported.
Get a static ip if at all possible. The work arounds with a dynamic IP are simply not as good. Or if your ISP and router fully support IPv6 you could alternatively go down that route.
I self-host a bunch of stuff and don't bother paying for a static IP.
I just have a cron job running that checks my IP and then uses API calls to update my DNS settings. I've got the DNS setup with Zonomi which are a local company, it costs maybe a couple dollars a month & i've got 8-10 domains running at any one time.
Dynamic DNS is free generally, for example if you put your domain on Cloudflare or another DNS host with an API that is supported you can just update the A records automatically on IP change.