I have a series of skills and scripts that I manually invoke using Pi. It checks my calendar, Slack, email, etc. and keeps pretty good track of my day, to the point that I trust it enough to get a lot of noise out of my head.
It's especially gratifying (in my experience) to sing in a choir. I've been in the same chamber vocal group[1] for almost 20 years, and it has enriched my life in so many ways. I count the other members of the group as some of my closest friends.
Many areas have ensembles with a range of experience levels and commitment requirements. Now is a great time to look up local ensembles and see when they hold auditions (most of them are probably within the next few months).
I've never heard of this convention. Every getopt-style CLI tool I've used has identical behavior whether an option is specified in its short- or long-form.
Any rust cli built with clap or go cli built with cobra supports short and long help and surface these with `-h` and `--help` (I think cobra surfaces this in the help command rather than in the --help, which is probably a reasonable alternative way to frame this)
Keeping services running is fairly trivial. Getting to parity with the operationalization you get from a cloud platform takes more ongoing work.
I have a homelab that supports a number of services for my family. I have offsite backups (rsync.net for most data, a server sitting at our cottage for our media library), alerting, and some redundancy for hardware failures.
Right now, I have a few things I need to fix:
- one of the nodes didn't boot back up after a power outage last fall; need to hook up a KVM to troubleshoot
- cottage internet has been down since a power outage, so those backups are behind (I'm assuming it's something stupid, like I forgot to change the BIOS to power on automatically on the new router I just put in)
- various services occasionally throw alerts at me
I have a much more complex setup than necessary (k8s in a homelab is overkill), but even the simplest system still needs backups if you care at all about your data. To be fair, cloud services aren't immune to this, either (the failure mode is more likely to be something like your account getting compromised, rather than a hardware failure).
You're spending that much time on it because you're doing too much. Your use of the term "homelab" is telling. I have:
* A rented VPS that's been running for ~15 years without any major issues, only a couple hours a month of maintenance.
* A small NUC-like device connected to the TV for media. Requires near-zero maintenance.
* A self-built 5-drive NAS based around a Raspberry Pi CM4 with a carrier board built for NAS/networking uses. Requires near-zero maintenance.
* A Raspberry Pi running some home automation stuff. This one requires a little more effort because the hardware it talks to is flaky, as is some of the software, so maybe 2-3 hours a month.
The basics (internet access itself) are just a commodity cable modem, a commodity router running a manufacturer-maintained OpenWRT derivative, a pair of consumer-grade APs reflashed with OpenWRT, and a few consumer-grade switches. There's no reason for me to roll my own here, and I don't want to be on the hook for it when it breaks. And if any of the stuff in the bulleted list breaks, it can sit for days or weeks if I don't feel like touching it, because it's not essential.
And yes, I've hard hardware failures and botched software upgrades. They take time to resolve. But it's not a big burden, and I don't spent much time on this stuff.
> I have a much more complex setup than necessary
Yup.
> Getting to parity with the operationalization you get from a cloud platform takes more ongoing work.
You don't need this. Trying to get even remotely there will eat up your time, and that time is better spent doing something else. Unless you enjoy doing that, which is fine, but say that, and don't try to claim that self-hosting necessarily takes up a lot of time.
It's definitely mostly a hobby, but I also want to get something close to the dependability of a cloud offering.
I started small, with just a Raspberry Pi running Home Assistant, then Proxmox on an old laptop... growing to what I have now. Each iteration has added complexity, but it's also added capability and resiliency.
I love self-hosting and run tons of services that I use daily. The thought of random hardware failures scares me, though. Troubleshooting hardware failure is hard and time consuming. Having spare minipcs is expensive. My NAS server failing would have the biggest impact, however.
Other than the firewall (itself a minipc), I only have one server where a failure would cause issues: it's connected to the HDDs I use for high-capacity storage, and has a GPU that Jellyfin uses for transcoding. That would only cause Jellyfin to stop working—the other services that have lower storage needs would continue working, since their storage is replicated across multiple nodes using Longhorn.
Kubernetes adds a lot of complexity initially, but it does make it easier to add fault tolerance for hardware failures, especially in conjunction with a replicating filesystem provider like Longhorn. I only knew that I had a failed node because some services didn't come back up until I drained and cordoned the node from the cluster (looks like there are various projects to automate this—I should look into those).
An iron ring does not technically make you an engineer in Canada. It just says you graduated from an engineering program. A P.Eng, which is a professional engineer's license is something you acquire after multiple years of experience and testing.
We've become really close friends with a couple of families on our block. It definitely helps that we all have kids the same age, but a big reason for this is that our kids entertain each other, freeing the adults (most of the time) to interact with each other.
I also sing in a small choir that is as much a friend group as it is a music ensemble. Most of us have kids, but not everyone; while I can't speak for those in the group without kids, I think one reason it works so well is because none of us have parenting responsibilities while we're together as a choir (we joke that rehearsals are a great time for us to escape from our families).
reply