Web garden

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.

See the Changelog and the Site Map for the latest changes.



This garden runs on a little 7+ year-old Raspberry Pi 2 that is currently sitting somewhere on my home desk in Magdeburg, Germany. The OS (Alpine Linux 3.16.1 for armv7) is loaded from an even older and slower 512 MB MicroSD card. However, once it has booted up, the whole operating system is running entirely within the Raspi's 1GB of RAM. This "diskless mode" makes any (simulated) file access extremely fast, while sparing the 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…


Pages linking here