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
10-12-2025
I have tried many tools to manage containers. I keep coming back to Docker for the user experience. If you are not familiar with containers or Docker, check out a post for an introduction. While most containers in my homelab are now in Kubernetes, I still manage some containers with Docker compose. My DNS servers are 2 Raspberry Pi with a VM as 3rd DNS server. They also have reverse proxy servers deployed as containers (like nginx, caddy, etc.). So I built a workflow to manage those as containers. I do not want these DNS servers to be part of the k8s cluster and I want them to be able to start up without having dependencies on an external system. I want to have a functioning network if there is 1 DNS server online or all 3 are online. I am using Adguard Home to manage DNS queries in my Homelab.
10-05-2025
Blog Theme
It has been a long time since I posted about how this website (blog) is built. This blog is a static site generated with a tool called Hugo (written in golang). In the last post about the blog itself, I moved the theme of the site to one that I created myself and published to GitHub. I made some updates to the theme in 2025 mainly fixing CSS issues. Turns out I wrote a bunch of styles for code blocks but never actually loaded those into the site. This was something that I had an AI coding agent help with. I used Cursor and Gemini CLI to modify the theme of my site. An unexpected method I used to fix the CSS issue was pasting a screenshot of Chrome dev tools into the Gemini CLI.
10-03-2025
The Raspberry Pi Foundation has just released a major update to Raspberry Pi OS, now based on Debian “trixie.” If you’re running the previous version (based on Debian “bookworm”), you might be wondering whether to upgrade your existing setup or start fresh. Here’s everything you need to know to make an informed decision. I am upgrading my old Pi 3 since the others I have are using Ubuntu. I still have this Pi for apps that work on 32bit arm CPU architecture.
10-01-2025
New disclaimer I am adding: I used an LLM to help create this post but afterwards I spent more than an hour editing it to the final form.
This tool n8n allows you to build automated workflows with AI agents through a “node” based UI in the web. It also has a REST API and you can define the workflows in JSON. We can configure webhooks to allow systems to trigger workflows in n8n.
09-29-2025
Prometheus installations may eventually run into scale limits such as short retention windows or high state cardinality costs. VictoriaMetrics provides a compact time-series database that accepts Prometheus remote write traffic and exposes the same query APIs. This post walks through deploying the single-node container (via docker run
or Docker Compose), wiring it into an existing Prometheus and Grafana stack, and highlighting the trade-offs you should validate before production use.
I will be deploying this in my homelab with Docker Compose. There are other installation methods and always consult the official documentation for the latest guidance on installing VictoriaMetrics. If you are not familiar with Docker or containers, check out a previous post to get started.
09-23-2025
This post was written by a human but here is an AI generated glossary for the terms I throw around.
-
LLM (Large Language Model)
A type of artificial intelligence model trained on vast amounts of text data to understand and generate human-like language. LLMs power tools like ChatGPT, enabling tasks such as answering questions, summarizing, and writing code.
-
MCP (Model Context Protocol)
An emerging protocol that standardizes how AI models communicate with external tools, applications, and data sources. MCP allows an AI system to extend its abilities by connecting to different services in a structured and secure way.