I recently wrote a post called High Availability, RAID10, and 3-2-1 Backups with FreeBSD. There’s benefits to running the setup described within but it could be overkill for some uses. I don’t use it for everything. Sometimes all that’s needed is an incremental ZFS send/recv in a crontab. Admittedly, the previous post violates KISS (although, we didn’t invoke a package manager in the previous post — and we won’t do so here, either).
I host 33 web services on my personal servers. Ten of which are Go web services which I have created. They’re “open source.” In quotes as some services and their sources are obscured (I don’t care to document their uses). Managing more than a couple web services effectively needs some level of automation. Specifically around building and deploying the web services. Of which I handle with Git hooks and rc.d on FreeBSD.
On this blog you can find posts on minimal rc.d scripts and minimal CI/CD scripts but here I will show a full example I use across a number of open source Go projects that I think work well for general usage (and is used for this very blog).