My NAS, frood, has a bit of a weird setup. It’s just one big initramfs containing a whole Alpine Linux system. It’s delightful and I am not sure why it’s not more common.
As long as the bootloader can find the kernel and initramfs, the machine comes up cleanly.
A/B deployments and rollbacks are just a matter of choosing a different boot option.
The system is defined declaratively in the git repo that builds the initramfs.
Importantly to me, it’s not defined in some complex DSL: if I want a file to exist at /etc/example.conf I put it in root/etc/example.conf , and the rest is done by a few hundred lines of scripts I can (and have) read.
I put it in , and the rest is done by a few hundred lines of scripts I can (and have) read. Configuring it doesn’t look any different than configuring any regular Alpine system.
I can test the next deploy with a qemu oneliner.
There are very very few moving parts.
If this already sounds appealing, you can skip to the “How it works” section below.
But why
... continue reading