this post was submitted on 04 Aug 2025
76 points (97.5% liked)

Selfhosted

50253 readers
772 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. 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.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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)

top 50 comments
sorted by: hot top controversial new old

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.

[–] JoeKrogan@lemmy.world 1 points 1 day ago

You can use a ddns such as duckdns or host on github pages with jekyll or something

[–] KarnaSubarna@lemmy.ml 1 points 1 day ago

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/

[–] hylaea@reddthat.com 1 points 1 day ago

there is Onionshare...

[–] Saik0Shinigami@lemmy.saik0.com 29 points 3 days ago* (last edited 3 days ago) (24 children)

You only need a static address for hosting email or VoIP.

You can do just about everything else with DDNS (dynamic DNS). However with DDNS, you will have downtime until the DDNS update takes effect and propagates to clients. This can be seconds... or hours. Depends on the DDNS service and TTLs that they set and how quickly your script/DDNS client works to push the update out.

You should check how often your address changes and check how quickly your DDNS solution pushed the update out. If it's 10 seconds every 10 months, you will likely find that perfectly acceptable. If it's an hour every other sunday... maybe not. But only you will know how much downtime you can tolerate.

I always will take static IP personally. But it's not technically required and you can work around it if you want to save the 10-15$/month.

Edit: You could also argo tunnel if you're okay using cloudflare. But I don't think that answer is particularly in scope of the question. But just in case it's useful to someone out there I'm adding this edit. Doesn't fix the PTR requirement for Email and VoIP stuff though.

[–] 3dcadmin@lemmy.relayeasy.com 3 points 3 days ago (1 children)

I run an smtp relay exactly for that kind of stuff with emails. Clients still like wordpress and this is easy to use, many other will accept an smtp relay/service like say gmail (the first one I could think of)

[–] Saik0Shinigami@lemmy.saik0.com 3 points 3 days ago (3 children)

Yeah that's another option as well... Services like dynu.com or smtp2go.com do exist... but you have to pay for them and there is a risk that the service can open/read your messages.

load more comments (3 replies)
load more comments (23 replies)
[–] hperrin@lemmy.ca 12 points 3 days ago (1 children)

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.

[–] sem@lemmy.blahaj.zone 10 points 3 days ago* (last edited 3 days ago) (2 children)

I recommend afraid.org, you get everything that you need for free dynamic dns, and they're a cool project so someday you may like to do even more with them or send them a little donation.

I started with noip first, and the monthly re-up was so annoying.

[–] terminal@lemmy.ml 2 points 2 days ago

They are excellent

[–] Jason2357@lemmy.ca 3 points 3 days ago

Seconded. Used their service for many years.

[–] some_guy@lemmy.sdf.org 6 points 3 days ago* (last edited 2 days ago) (1 children)

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.

[–] Vinstaal0@feddit.nl 1 points 3 days ago
[–] non_burglar@lemmy.world 8 points 3 days ago* (last edited 3 days ago)

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.

[–] K3can@lemmy.radio 7 points 3 days ago (3 children)

I selfhost my blog without a static IP. You just need Dynamic DNS.

Keep in mind that your outbound bandwidth might be different from your inbound. I get 300mbps in, but only 5mbps out. It's not noticeable during normal Internet use, but as you start sharing content publicly, limited bandwidth becomes really noticeable.

load more comments (3 replies)
[–] DieserTypMatthias@lemmy.ml 2 points 3 days ago (1 children)

No, you don't. Use Tailscale to expose your blog.

[–] Paddy66@lemmy.ml 2 points 2 days ago (2 children)

Wouldn't that be just for me - in my Tailnet - rather than to the general public?

[–] DieserTypMatthias@lemmy.ml 2 points 2 days ago

AFAIK Tailscale has an option to expose certain ports to the internet.

[–] chaospatterns@lemmy.world 1 points 2 days ago (1 children)
[–] Paddy66@lemmy.ml 2 points 2 days ago

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?

[–] darkan15@lemmy.world 6 points 3 days ago* (last edited 3 days ago) (1 children)

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.

[–] mbirth@lemmy.ml 4 points 3 days ago

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.

[–] iii@mander.xyz 5 points 3 days ago

It makes things easier, but you have options, such as:

  1. dynamic dns.
  2. Public reverse proxy or tunnel.
  3. Onion routing.
[–] coderhs@lemmy.ml 1 points 2 days ago
[–] Magnum@lemmy.dbzer0.com 2 points 3 days ago
[–] possiblylinux127@lemmy.zip 3 points 3 days ago

I would stand up a VPS in a cloud provider

I just use github pages tbh. Free

[–] Sliversun@lemmy.world 2 points 3 days ago

Some of the other options are cloud flare tunnel or ddns that would give you static ip effect without static ip

[–] Prunebutt@slrpnk.net 4 points 3 days ago* (last edited 3 days ago) (16 children)

I could make this quick: Is your internet access behind a CG-NAT? If yes: you're gonna need a static IP.

[–] 3dcadmin@lemmy.relayeasy.com 6 points 3 days ago (5 children)

Not necessarily, Cloudflare tunnels, headscale/tailscale will sort that issue out amongst several other ways

load more comments (5 replies)
load more comments (15 replies)
[–] slazer2au@lemmy.world 4 points 3 days ago

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.

[–] fmstrat@lemmy.nowsci.com 1 points 3 days ago (1 children)

How are you hosting? And do you have a domain? Lot's of good advice here, but knowing if you're running on a Pi, in Docker, etc, would help others give you the easiest/best method.

In short, you do not need a static IP.

[–] Paddy66@lemmy.ml 1 points 2 days ago (2 children)

Hi, I'm using Docker - one container for Ghost and one for Nginx Proxy Manager.

I've decided to go with DDNS but am having trouble choosing a reliable free provider. I've seen Dynu.com recommended but that is not available in the dropdown list of servers in my router's section on DDNS. Is that relevant?

Or would I just ignore the router settings and set it up some other way?

[–] fmstrat@lemmy.nowsci.com 2 points 2 days ago

Cloudflare is a good choice. I used DNSExit for a while, and also NS1, but settled on Cloudflare. You don't have to use their proxying, just DNS.

Here's a Docker Compose for you that will set myhost.mydomain.com to point to your public IP of wherever it is run:

dyndns-cloudflare:
    image: oznu/cloudflare-ddns
    container_name: dyndns-cloudflare
    environment:
      - API_KEY=<key>
      - ZONE=mydomain.com
      - SUBDOMAIN=myhost
      - PROXIED=false
    restart: unless-stopped
[–] RecitalMatchbox@lemmy.world 2 points 2 days ago* (last edited 2 days ago)

I'm having a good experience with cloudflare, using ddclient on a cron job

To clarify: it doesn't matter much what your router supports if you have a server with ddclient (possibly in Docker container). Then you can choose whatever provider you'd like, and there are tons of resources on ddclient.

[–] Paddy66@lemmy.ml 3 points 3 days ago* (last edited 3 days ago) (6 children)

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

  1. Ghost
  2. Nginx Proxy Manager
load more comments (6 replies)
[–] 3dcadmin@lemmy.relayeasy.com 3 points 3 days ago

Personally I would look at using a tunnel, something like Cloudflare tunnels (easy to setup, sorts dns out) but many here dislike Cloudflare for a lot of reasons. However the free plan allows you to get started, easily, and then once you are started and serving your blog you can look into other solutions, or failing that stay on Cloudflare. Other tunnels exist but if you have a domain, using cloudflare is the easiest imho to get started

load more comments
view more: next ›