From bf2e1a13f08f73e7e12ae82a4bf1a19ba8efd2ea Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 24 Nov 2025 06:48:25 -0600 Subject: [PATCH] homelab --- blog/Homelab/index.html | 748 +++++++++++++++++++++++++++++++ blog/SteamController/P8Q4WHD.png | Bin 0 -> 44527 bytes blog/index.html | 8 +- 3 files changed, 753 insertions(+), 3 deletions(-) create mode 100644 blog/Homelab/index.html create mode 100644 blog/SteamController/P8Q4WHD.png diff --git a/blog/Homelab/index.html b/blog/Homelab/index.html new file mode 100644 index 0000000..3d6d680 --- /dev/null +++ b/blog/Homelab/index.html @@ -0,0 +1,748 @@ + + + + + + Home Sweet Homelab + + + + + + + +
+ +
+
01
+ +

Welcome to my homelab

+

+ A tour through an idealized infrastructure setup that probably violates several fire codes +

+
+ Kubernetes + LGTM Stack + Pi-hole + TrueNAS + Home Assistant + ZFS +
+
+ + + + + +
+

+ You know how when someone's coming over, you do that frantic cleaning spree where you start + shoving everything into closets and you try and convince everyone that you're always this neat? This article is like + that, but for my homelab. The actual setup is a stratographic column of different ideas and experiments from different time periods that are forced to work together to form a cohesive unit. + What I'm about to talk about are the Wins that have solved problems for me and made my life easier. +

+ +

+ Let me give you the tour. +

+ +
+
+
+ +

The Kubernetes Cluster

+

+ I got into Kubernetes the hard way. I had a handful of services running on various VMs, each with their + own quirks and manual deployment steps. Updating anything meant SSH-ing into the right machine, remembering + which directory the config lived in, and hoping I didn't fat-finger something in production. After the third + time I had to delete a VM because I couldn't remember a password, I decided there had to be a better way. +

+ +

+ Right now, I'm running a single-node cluster. Both the control plane and worker live on the same machine, + which is like saying you ride a motorcycle, and it's actually a moped. The plan is to expand this into a proper multi-node setup + eventually. For now, it's handling everything I need: automated deployments, rolling updates, and the kind + of infrastructure-as-code setup that lets me sleep at night knowing I can rebuild everything from YAML if I + need to. +

+ +

+ The nice thing about Kubernetes is that once you get past the initial learning cliff, + deploying new services becomes almost trivial. Write a manifest, apply it, and + watch it spin up. No more manual configuration files scattered across different machines. + Services get their own networks. Routing is included. You would need a vastly more complex + solution to do what Kubernetes does even at a basic level. +

+ +
+
+
+ +

Monitoring with LGTM

+

+ If Kubernetes is the engine, then monitoring is the dashboard. I'm running the full LGTM stack: Loki for + logs, Grafana for visualization, Tempo for traces, and Mimir for metrics. It sounds like overkill for a + homelab, and maybe it is, but I got tired of playing detective every time something went sideways. +

+ +

+ Every time a container would fail, it would restart, taking its logs to the grave with it. I would be + none-the-wiser about what actually happened. Kubernetes is excellent for keeping uptime- well, up. But + it masks the problem. This would be a reason why some tech-centric people prefer hard failures over soft + failures. Hard failures can address the problem. Soft failures let the problems pile up under the rug. +

+ +

+ Now I can pull up Grafana, see exactly when CPU spiked, cross-reference it with logs in Loki, and actually + understand what my problem is. Also, there's something satisfying about having charts and graphs that + show your systems are healthy. Or unhealthy. At least you know. Imagine if your own body had such charts. + People would be checking them every day. +

+ +
+
+
+ +

DNS Redundancy with Pi-hole

+

+ Here's a fun scenario: you're rebooting your homelab for updates or it shuts down after a power outage. + You wake up and your phone doesn't work. You try to connect to your Pi-hole instance to see the problem, + but your computer doesn't have an IP. So now you can't change your DNS/DHCP configuration, because your + computer can't talk to the device that should be managing that. To solve the problem you would have had + to have solved the problem already. A Catch-22. +

+ +

+ This happened to me several times before I set up a Raspberry Pi running Pi-hole as a fallback. It sits + outside the main homelab infrastructure, always on, always ready. When the primary DNS is up, it's just a + redundant backup. When I need to restart things, it seamlessly takes over. I rsync the config to the backup + Pi once a day to keep them consistent, or provide a good backup should I really screw something up. +

+ +

+ As a bonus, Pi-hole blocks ads at the network level, which is it's main benefit, but I almost forget about + it until I get off my network. It's such a robust product that I only remember it when I want to mess with + DNS/DHCP (break things). +

+ +
+
+
+ +

TrueNAS for Storage

+

+ Storage is one of those problems that sneaks up on you. First it's just a few documents. Then some photos. + Then you're ripping your DVD collection and suddenly you need 10TB and redundancy because losing years of + data to a single drive failure sounds like a nightmare. +

+ +

+ TrueNAS handles all of this with ZFS under the hood. I've got it set up with mirrored drives, which means + I can lose a disk without losing data. It serves media to devices around the house, backs up important files, + and generally acts as the single source of truth for anything I don't want to lose. +

+ +

+ The web interface makes it approachable too. I'm not particularly interested in becoming a storage expert, + but TrueNAS lets me configure RAID levels, set up snapshots, and monitor drive health without needing a PhD + in filesystems. It just works, which is exactly what storage should do. +

+ +
+
+
+ +

Network Gear and Routing

+

+ A good homelab needs a solid network foundation. I'm running a managed switch that handles VLANs, which lets + me segment traffic appropriately. IoT devices get their own VLAN, which means even if some random smart bulb + gets compromised, it can't reach the rest of the network. It also brings me some sense of organization. My + Rasperry Pi cluster can stay organized on one VLAN without mucking up my devices list. +

+ +

+ The router is running custom firmware that gives me way more control than any consumer router ever would. I + can shape traffic, set up VPNs, and actually see what's happening on my network. It's the kind of thing where + once you start looking at the data, you realize how much garbage is constantly flying around your home network. + Smart TVs phoning home. IoT devices pinging random servers. It's enlightening in a slightly creepy way. +

+ +
+
+
+ +

Backup Strategy

+

+ Here's something nobody thinks about until it's too late: backups. The homelab itself is somewhat ephemeral. + I can rebuild it from configs. But the data? That needs to be protected. +

+ +

+ I'm following the 3-2-1 rule: three copies of data, on two different types of media, with one copy offsite (well sorta). + TrueNAS handles the local copies with snapshots and redundancy. It's in a ZRAID configuration for drive parity. I've + got an external drive I have plugged into the homelab using a docking station that I will periodically turn on. I have + most of my configs backed up to my desktop or in the cloud, so in the event of a failure, I can get back online quick. +

+ +

+ It's not exciting. It's not fun to set up. I've actually found I've misconfigured it several times and + through sheer luck that hasn't been a problem yet. But it's the difference between a minor inconvenience and a + catastrophic loss. I learned this lesson on my desktop when I was dual booting Windows and Linux. Windows + introduced a bug that deleted non-Windows boot drives. Now everything is backed up, automated, and I can actually sleep at night. +

+ +
+
+
+ +

Automation and Services

+

+ The real power of a homelab comes from what you do with it. I've got Home Assistant running for home automation, + which ties together all the random smart devices I've accumulated over the years. Lights, sensors, you name it, all + talking to each other in ways they were never designed to. At some point in the future, I'd like to replace my + light switches with dimmers that can be run by Home Assistant, so they will dim or brighten depending on the + time of day. +

+ +

+ Kubernetes ingress reverse proxying handles all the web service routing, complete with automatic SSL certificates. I don't have to + think about certificate renewal or manually configuring HTTPS anymore. Cert-manager does that all for me. +

+ +

+ I've got a Gitea server for personal projects, a password manager to sync across devices, an Obsidian-livesync instance for my note taking, + and a handful of other services that make daily life a little easier. Each one solves a specific problem, and + together they form an ecosystem that's genuinely useful. +

+ +

+ My last ditch effort for automation is n8n. It is what I would call "code glue." Any services that need to talk to each other + in some way, but don't have preconfigured methods to do so, I can stitch together with n8n. It allows me to create workflows, + use logic, create webhooks, and modify data before sending it somewhere else. If I need something done and there's no right way + to do it, you bet I'm gonna make an n8n workflow. +

+ +
+
+
+ +

Power Management

+

+ Something people don't talk about enough: power. Not just whether things are plugged in, but power management + during outages. I've got a UPS (Unattended Power Supply) handling the critical infrastructure. It's not designed + to keep things running for hours, but it gives me enough time to gracefully shut everything down if the power + goes out. +

+ +

+ More importantly, it protects against surges and brown-outs. Electronics are expensive, and replacing a failed + server because of dirty power is both costly and annoying. The UPS communicates with the servers too, so if I'm + not home and the power goes out, everything shuts down safely on its own. +

+ +
+
+
+ +

Constant Evolution

+

+ One morning I woke up to find my phone disconnected from the network. To my surprise, it wasn't Pi-holes fault, + it was a drive failure. Not a ZRAIDed TrueNAS drive, but the main one. I had misconfigured backups at this point. + Upon restart, my homelab wouldn't boot. I was in a pickle, but I didn't dispair. I thought it would be a chance to + start anew. I thought about many of the changes I would make. +

+ +

+ First of all, I would get rid of Proxmox. I had it installed as a Type II hypervisor on the OS level. I was conned + meme-d into installing it, only to find it overly complex to do simple things. Worst of all, I had absolutely no use for a VM. + I was already comfortable with containers. If I needed a GPU I could theoretically do a passthrough to a VM, but the convoluted + abstractions always made it impossible to actually configure applications with it. I would rather run an OS and run containers/VMs + as need be than just abstract the functionality away. +

+

+ Argo CD. A deified tool among some. A waste of resources to me. For example: any Argo CD instance needs another host of Argo CD service + instances that can be quite beefy on any system. And for what? To do what Kubernetes does automatically? You would be better off + creating a pipeline orchestrator from scratch using cron, webhook scripts, and Terraform. +

+

+ There's a happy ending to the story. Eventually, after rebooting the homelab a couple dozen times trying and failing to hit the boot + menu key fast enough, I discovered that my drive hadn't failed at all. It works even now, and for no reason at all. Amazing. +

+ +

+ I still have future plans for my homelab. If I ever come into some more hardware, I could finally set up that second node for + my Kubernetes cluster. I might even leave it bare-metal so I can keep the GPU available for any future projects where I might want + some ubiquitous computing power anywhere in the world. It would also be nice to move TrueNAS to it's own dedicated hardware. + There's always more to learn and experiment with. I wonder what sort of homelab I could have a year from now. +

+ +
+
+ + + + + diff --git a/blog/SteamController/P8Q4WHD.png b/blog/SteamController/P8Q4WHD.png new file mode 100644 index 0000000000000000000000000000000000000000..c9273c9f4bb32c9e330c30c3a4909f3d4197ca5e GIT binary patch literal 44527 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