hi everyone,
I was just about to self-host a Ghost blog but then was warned that my ISP might change my external IP address at any time, so I would need to pay for a static IP address.
Is that true?
(I’d not seen much about that in stuff I’ve looked up so far about self hosting)
Whether your ip changes frequently depends on your ISP, but it’s not necessary to have a static ip. My public IP changes about once a year, but I use my router to update my dns and make ally external services rely on DNS and not IP to connect.
You can also do this, look up “dynamic DNS”. You just need to register a DNS name (can be free) and set up the updates to make it accurate.
As others have said, you can use dynamic DNS, but you also might have an IPv6 address that doesn’t change. Or maybe it does, you’ll have to check with your ISP. But that one can be set up as an AAAA record in your DNS.
Most ISPs support IPv6, but some don’t, so you might not be accessible to everyone without also having an A record.
You can rent a virtual private server (VPS). I used to have a number of these for under $10 / month. I imagine they might cost more now., but chances are you can still find something super affordable.
Wordpress.org will let you have a free site but you don’t get a custom domain. Wordpress.com has a personal plan for $4 / month. Matt Mullenweg (CEO) has revealed himself to be a crazy piece of shit, so maybe look elsewhere. I’m just trying to give you a sense of how accessible this stuff can be.
Running a VPS will require more learning, but it can be super gratifying if you enjoy nerdy computer stuff and solving puzzles just for self-satisfaction. I used to use Rackspace, Linode, and something else that I can’t recall at the moment. All were pretty reasonable. Rackspace had a ton of good setup guides for newbies that were well written. I’d occasionally land on those doing a web search for other hosting stuff and found them reliable.
Edit: DigitalOcean was the one I couldn’t remember.
https://www.hetzner.com/european-cloud Netzner can be a good alternative
It makes things easier, but you have options, such as:
- dynamic dns.
- Public reverse proxy or tunnel.
- Onion routing.
As others have already commented, what you need is a Dynamic DNS service, where you register a subdomain, and setup a small program or script on your computer that pings the DDNS server every few minutes, that way you leave that running on the background, and if the program detects that the IP with the request changes, it will update the subdomain to point to it automatically.
You could access the blog from the subdomain of the DDNS directly or if you get your own domain, you can point it to the DDNS.
If you want a recommendation, I have been using DuckDNS for years, and it has been pretty reliable.
There’s also FreeDNS. Their only ask is that you log into the account once every 6 months so they know you’re still using it.
You don’t need one, but it does make things easier.
What you can use is something like Dynamic DNS to update your DNS record if your IP ever changes.
I would stand up a VPS in a cloud provider
Surprised nobody has mentioned cloudflare ddns. If you registered your domain with cloudflare, you can use the api or qdm12’s (author of gluetun) ddns-updater to keep your A/AAAA records up to date.
Thank you for your replies everyone!
I’m looking into DDNS. Before I go with a provider, I notice that my router has this functionality built in. Should I use that?
(It’s an Asus RT-AX86U Pro - so fairly chunky in terms of spec)
For reference, the set up is:
Docker containers for
- Ghost
- Nginx Proxy Manager
(It’s an Asus RT-AX86U Pro - so fairly chunky in terms of spec)
I have your exact router make and model! I self host my own server with a domain on my home network and make use of the built in DDNS feature.
My domain registrar is Cloudflare so I have to use a custom script for DDNS, if you’re in the same boat I can provide the script.
I would suggest looking into Asus WRT Merlin Firmware, the custom firmware enables more functionality to your router.
Docker containers for
- Ghost
- Nginx Proxy Manager
When hosting a reverse proxy like Nginx, Traefik, SWAG, Pangolin, etc keep in mind you 80:80 and 443:443 ports need to be exposed to the host machine then you will forward those ports on your router. This will allow your reverse proxy to communicate with Lets Encrypt generating and verifying your SSL certificates.
Regarding Lets Encrypt your server doesn’t need to be accessible from the internet if you use the DNS-01 challenge. Caddy with the caddy-dns plugin for your provider can do that automatically for you.
Running a service like ddclient may give you more options at the cost of being more complicated.
That would be a good place to start. Which providers does it support?
YunoHost has automatic DNS updates
https://doc.yunohost.org/admin/tutorials/domains/dns_dynamicip/
Some of the other options are cloud flare tunnel or ddns that would give you static ip effect without static ip
No, you don’t. Use Tailscale to expose your blog.
Wouldn’t that be just for me - in my Tailnet - rather than to the general public?
AFAIK Tailscale has an option to expose certain ports to the internet.
That doesn’t seem to be appropriate for a specific domain. Unless I’m reading it wrong.
We need to expose the Ghost blog on a specific subdomain of the domain we own ( blog.ourdomain.org )
doesn’t Tailscale Funnel assign a funky domain name rather than let you use your own?
there is Onionshare…
Cloudflare Tunnel is a good fit to your use case. You only need a domain name to expose your web server via Cloudflare.
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
You can use a ddns such as duckdns or host on github pages with jekyll or something