These are the early stages of my web garden, a static html rendering of a collection of wiki-like notes that I'm writing in org mode.
This garden used to run on a little 7+ year-old Raspberry Pi 2 that used to sit somewhere on my home desk in Magdeburg, Germany.
I've since unearthed an even older Raspberry Pi 11 B, with even
less RAM (512MB) and only a single core
BCM2835. In late March 2023,
I transplanted this garden to this grandfather of single-board
computers2. It is still sitting somewhere on my desk.
The OS (Alpine Linux 3.16 for armhf) is loaded from an even older and slower 512 MB SD card3. However, once it has booted up, the whole operating system is running entirely within the Raspi's RAM. This "diskless mode" makes any (simulated) file access quite fast, while sparing the extremely elderly SD card. Only selected files are occasionally synced back to the card. Most temporary files, including log files, are genereally not preserved between reboots.
Networking-wise, the Pi used to be just one of the devices attached to my regular run-of-the-mill home router, where it ordinarily wouldn't be reachable from the outside Internet. To circumvent this, the Pi in the past simply kept up a (wireguard) VPN tunnel to the cheapest, lowest-spec virtual machine I could rent from the hoster of my choice (for about 3 euros a month). I then pointed the inimeg.space domain name to the VM, which in turn simply forwarded all incoming TCP traffic on port 80 and 443 via the wireguard tunnel to the Pi. Worked like a charm and I could have stopped there.
However, as it turns out, the "customer premises equipment" (aka the home router) that my ISP had shipped to me also supports some more advanced network configurations. I could exclude the Pi from the usual home NAT and have it directly reachable under the public IPv4 and IPv6 addresses that my ISP assigns to my home network at any given time. No more need for VPN tunnels and port forwarding, if I could just keep the inimeg.space domain up to date to always point to my current home IP address(es).
And that turns out to be quite easy and straight forward if you re-use the cheap VM that you rented earlier to run your own DNS server there instead…