AJ's Blog
This is a personal blog focused on computer software and hardware. Most
projects are implementing software and hardware for a homelab. What is a
homelab? I would say a homelab could be a single computer or dozens of
computers connected in a network. You can also integrate with computers
in the Cloud.
Continue reading...
Recent Posts
03-30-2026
I mostly use AI tools for code related tasks and over the past year I have found myself preferring terminal based tools over web apps or chat interfaces. That probably makes sense because when I am doing work on a computer, I am already heavily using a terminal. I am searching through files, checking git diffs, running tests, reading logs, and jumping between directories. A terminal based AI tool fits into that workflow more naturally than opening a separate browser tab or app and pasting snippets back and forth.
03-15-2026
I recently started cleaning up how I manage applications in Kubernetes with ArgoCD (Check out those links for an intro k8s and ArgoCD). For a while I was applying individual Application manifests with kubectl manually, which works fine when there are only a few apps. Over time that started to feel messy because there are so many apps.
I wanted something more predictable. The pattern I landed on is a root ArgoCD application that discovers child applications from Git. Each app gets its own directory with an app.yaml, a values.yaml, and optionally a templates/ directory for extra manifests. Once that structure is in place, managing Helm charts becomes much more repeatable whether the chart comes from a public repository or from one of my own apps.
03-08-2026
Kubernetes helps manage container based workloads across many machines. If you are not familiar with k8s, check out a previous post for an intro. I am going to switch to k3s as a more lightweight version of Kubernetes for my homelab. Previously I have used kubespray to set up a cluster. I am going to try out k3s which advertises itself as a more lightweight platform than regular k8s.
My goal is to run a Kubernetes cluster on my homelab network for experimenting with container-based workloads and running my own software. Instead of using one or two large, power-hungry servers, I prefer several small machines like Raspberry Pi or mini PCs. K8s (Kubernetes) lets me treat these nodes as a single pool of capacity, so I can deploy and manage applications centrally without configuring each server by hand.
03-01-2026
This is a follow-up to my previous apcupsd post. Check that post out for an overview of this project but essentially the goal is to collect metrics from a UPS system manufactured by APC and present them in Prometheus format to scrape with Prometheus.
I forked the GitHub repositories needed for apcupsd_exporter and kept the MIT license in place. That means anyone can still use, modify, and redistribute the code under the same open source terms.
02-21-2026
Modern time-series data demands modern solutions. Whether you’re monitoring server metrics, tracking IoT sensor data, or analyzing application performance, InfluxDB v3 Core combined with Telegraf provides a foundation for an Observability platform. In this post, we’ll walk through setting up a complete monitoring stack using Docker Compose, querying data via HTTP API, and understanding the migration path from older InfluxDB versions.
I have not used InfluxDB a lot in my homelab but I have used it at my job to store custom business application metrics. Once you have millions of metrics to keep track of, a single database and disk will become a bottleneck. If you are not familiar with Telegraf and InfluxDB, check out a previous post for an introduction to these tools and InfluxDB version 1 (open-source version).
02-15-2026
I have used vim and vi for a long time after I needed to learn a command-line only text editor for my first job deploying and managing server racks. Eventually I started using neovim as it was easier for me to customize than learning vimscript. Since neovim uses Lua for configuration, it was easier for me to learn the syntax. I only customized a few features though because I do not like spending a lot of time reviewing config files just to get beyond the “80 percent” of use cases I need in my editor.