Hosting a personal blog on old / cheap hardware at home and accepting some downtime now and then should be a trade-of worth making for most. An interconnected web of documents served from personal computers residing under a desk or in a basement – it is a beautiful thing.

We nerds often seem to fall into the trap of over-engineering things, like, spending a lot of time building personal stuff that can scale into the infinity – only to end up never having more than 10 concurrent visitors at any given time.

By accepting and embracing the intermittent and slightly unstable nature of serving websites from our homes, we can take back much of the in(ter)dependence and hacky, quirky fun that many of us fondly remember from the 90's and 2000's.

Setting up a webserver on a Pi and serving it from home can be a fun project, not necessarily trivial for everyone, but definitely within reach for most technically inclined people.

Might be among the cheapest, easiest AND fun ways to host a static site :)

I am doing this and it's fun! The only hassles I had are a. setting up DDNS (since I don't have a static IP) and b. getting a certificate from Let's encrypt with only port 443 open (80 is blocked by my ISP). But other than that, it has been great! Hopefully my ISP won't have a problem with that ;)

I just use a script on a cron that runs every 15 minutes and updates my DNS provider. And for let’s encrypt, I use the DNS verification method so you don’t have to even expose HTTP(S) ports if you don’t need to

I wrote a small go app[0] which is invoked every 15 minutes and updates the DNS through the cloudflare API. Its very specific for my use case and ISP but works well.

[0] https://gitlab.com/dominikstraessle/homelab-dns

Cool! There's also certbot[0] and lego[1] which can do ACME-DNS with a range of providers beside CF. You could also do tls-alpn, which allows you to do do the challenger encrypted on another port. Sounds like DNS works fine for you, but it's primarily worth considering for those issuing certs for non-public names that shouldn't be broadcasted via public DNS.

[0]: https://github.com/certbot/certbot

[1]: https://github.com/go-acme/lego