Speaking as someone who hosts multiple websites, email, etc. in the corner of a room

> [it should] be reliable if I kick a cable out of the wall

Right, if you want it to be reliable but also be able to cut its cables, then you will need a secondary host outside the home.

> or in the unlikely event that I get a bunch of traffic.

Are you serving media (music or video of more than a few seconds)? If not: DSL or mobile data (if your data cap allows) is fine for HN front page. Judging by the current page weighing 100KB, you can have 10 visitors every second at 1 MiB/s upload. (HN reaches that rate only in spikes, even at a top three position.)

> I’d also like it to be quick!

It's currently not quick at DigitalOcean (2 seconds for TLS setup, 12 seconds for HTML, 8 seconds for JavaScript, etc... 27 seconds total). It can only get better!

I can recommend something beefier than a raspberry pi, though, or at least than than the pi 1-3 speeds that I'm used to. I personally use an old laptop which is plenty fast for, well, anything you'd also ask of a daily driver, except it now doesn't need to render a GUI which speeds things up a lot. They can peak up to 100W depending on the model, but are usually very low power when nothing is being asked of them.

> Oh, and I don’t want to have my home network hacked.

Then install unattended-upgrades, put admin panels (phpmyadmin, wp-admin) behind basic authentication, don't host things you don't trust (random code written by 'someone on the internet' that has never been tested by anyone), put it in a VLAN if you want to be extra cautious, and you'll be fine. It never hurts to keep your phone and other systems on the LAN up-to-date anyhow so they should be secure as well, even if someone does get in.

How did you solve the problem of getting a stable mapping from DNS name to IP address?

For me, that's the big challenge; all I have is home internet on a dynamic IP provided by one of the big cable monopolies in the US.

You can use something like dynamic dns updaters[0]. They run on the box and when they detect that your ISP has changed your IP will update the DNS records accordingly.

[0] https://github.com/timothymiller/cloudflare-ddns