Back from the dead

Yes. Really.

If you followed the tinylog messages from a long time ago, you will have noticed that I put up a note in April 2025 or so to indicate that there'll be moves and such. Well, moves there were aplenty.

Move 1: House

It all started ~1 year ago (!) with the insurers finally paying up so that renovations could finally start at our old house. The Presbytery for that parish needed a LOT of repair after subsidance damage, and the repairs were going to be so extensive, we had to move out. It was going to be temporary. We finally moved to a vacant property in the hills, two parishes over, to a tiny village, in the middle of nowhere -- our neighbours are actually horses and the dead. But this was rather disruptive in many ways.

This was a good thing. We were really sick of the constant problems with that house, and the respite here was most welcome. But the temporary move turned out to be permanent, because:

Move 2: Parishes

As we moved home, it turned out that the Bishop was thinking about reorganising parishes and this specific church ended up legally moved to another group of parishes. And as we were already living here, and in all honesty, because I had a not-so-easy ride in the previous patch, it was suggested we move over here canonically as well, not just physically.

This was a good thing. Really liking the new parish, and working with my colleague so far has been really nice.

Move 3: Hardware and Platforms

But with all this came some more changes. The little old Macbook Air that I have been using as my OpenBSD laptop decided to die. Parallel to this the dual-boot MacOS / OpenBSD setup I had on my M1 Macbook Pro decided to die, too. Macbook Air was a victim of a failing motherboard (possibly), while the M1 Pro was a casualty of a MacOS system upgrade that got VERY confused by OpenBSD being presetn alongside it. And I almost bought myself an old ThinkPad when I realised that it's probably a better idea to grab the old Macbook Pro that was the Gemini server running Fedora, install BSD on that, and get a Raspberry Pi, install OpenBSD on that too, and let that serve gemini. Which is what I did. But this ended up being a MUCH longer process:

I first needed to repair the laptop as the battery basically turned into a Spicy Pillow (TM). [1] It was so puffed up that the bottom of the unibody case wouldn't stay on! So after waiting around a bit until the battery arrived from the Electronic Bay, I managed to replaced the battery, and got a really wonderfully slim and working laptop out of it.

But then I needed to sort out the Raspberry Pi as well which I got second-hand also from eBay. Installing OpenBSD on it was OK, although some of it had to take place over Serial as there is no screenbuffer, at least not initially. I quickly managed to re-create the environment on it: installed gmid, and copied a lot of the old files over, but to be honest, there was a lot held together with spaghetti code on the previous machine and a lot was chaotic.

I also had to change the reverse-proxying setup and move from `relayd` to letting `gmid` handle the proxying; this allows for much more fine-grained settings. This does mean, that for the time being, the status page is not working. Nor is "rosarium" but that is because the CGI script needs reworking a bit.

Move 4: ISP's

We brought our 5G LTE modem up along with us, which continues to supply our main internet connection. But because we live on top of a hill, and the local geography is as it is, and the layout of the house is as it is, I have had a suboptimal experience with it. I even ended up almost cancelling, and getting an "early release" from the ISP, beacuse it turned out that the problems were actually mostly on their side: the local tower is overcrowded, and that is why our connection kept dropping out so much. So I took out a contract with another provider in the meantime. However I also managed to do what the guy on the other side of the phone couldn't: fix our 5G. Turned out tweaking how the 5G connection is established and specifying some different nameservers really really helped. But I now had entered another contract as well...

Move 5: Home infra

... and because my good friend h3artbl33d [2] bequathed a Zimaboard to me, the only logical thing was to create a multi-wan failover setup at home. Which was NOT as easy as I anticipated: the crappy Chinese LTE modem (fails to boot if you disable DHCP) coupled with a very locked down FritzBox the other ISP provided (no modem mode?! really?!) and an even more horribly locked down set of eero mesh routers (don't even get me started about the lack of a web interface), this was not at all straightforward. But I had some hardware woes as well: first it took AGES until the Zima's Ethernet expansion board arrived; then I had to realise that I really must get a replacement SATA-Y cable for the Zima (they have this proprietary-ish connector for two hdd's sharing a power source) because installing to the internal flash was DREADFULLY slow; and if I used an USB-attached SATA SSD I kept running into problems where the drive got disconnected by accident as the connectors weren't particularly high quality. So there was a lot of waiting for parts.

Software-wise, I first tried following the OpenBSD FAQ's equal-cost multipath routing tutorials but I kept having issues with my home setup; and although I did pre-order the fourth edition of "The Book of PF" [3] Then I tried to use `hbsdfw`, the HardenedBSD fork of Opnsense. But as it turned out there was some kind of a weird bug in it and I simply could not get it to recognise and load the FreeBSD drivers for the PCMCIA Ethernet expansion card. So I went with "plain" Opnsense.

I spent a few days configuring it, but I got there in the end.

To top it all off, I took apart the whole "server drawer": got rid of a rat's nest of cables; removed a spare switch from the network; made up lots of CAT6 cable running from upstairs to downstairs; got some USB to Ethernet adapters, a CAT6 crimping set; un-deguproofed everything; re-deguproofed everything; moved my desk, tidied... and when the "physical" side of things got done I could start, finally, on the software side.

Move 5: Dynamic Gemini engine -> Roll-your-own SSG

I was rather sick of the old capsule engine. It had many tricks up its sleeve (some entirely unneccessary), but it became very bloated. Plus the URL structure was a MESS with GET parameters (or whatever they are called when it's not HTTP) and url%20encoded%20%filenames%20%with%spaces%in%them. I wanted to change all the filenames, I wanted to be rid of the on-the-fly generated pages, I wanted a "static" site, but none of the Static Site Generators I found were ones I would have liked. I realised basically all I wanted was an `index.gmi` to be generated each time I add a file; and use a flat-file structure as much as possible.

So I first wrote a gemini crawler (was gonna link to the code but it seems I actually forgot to add it to my git), archived the old site into an SQLite database, set up "auld.vigilia.cc" [4] so people can have a look at old content while I am working on new things; and then started doing a lot of research into static site gens and file and folder watching on OpenBSD.

There were a few false starts, and on one occasion, significant data loss (FFS ate my $HOME when the macbook's battery died on me), but in the end I created `lumen`, my little Static Site Generator for Gemini. There will be a separate post about it sometime later. I"m really quite happy with it because now posting to my capsule is as easy as writing a file on my computer, which then gets automatically synced to the gemini server, which then automatically re-generates the site... And it's all "touch-free" (as in I no longer have to start up processes by hand as I used to) thanks to `supervisord` [5] and `entr.` [6]

MOV AX,1

So that's really it. This last _year_ has seen a lot of changes, but finally I think it's all done. It's all much more sustainable, simpler, neater, safer, more stabile.

Yes, this is analogous to my own health, as well. I am also in a much, much better place. Although life currently poses some extremely difficult challenges, and there are still ups and downs, I think the ups are longer, the downs aren't as deep, and overall I have been able to cope much better with it all. There's still some way to go, but, with all this background work, this little capsule is back online, and hopefully, with more updates coming along again.

--

[1] 2025-07-20-spicy_pillow.mp4

[2] h3artbl33d's website

[3] "The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall" (4th Edition) by Peter N. M. Hansteen

[4] auld.vigilia.cc

[5] OpenPorts: "supervisor - system to monitor and control processes"

[6] OpenPorts: "entr - run arbitrary commands when files change"