A locked Terraform state file in an S3 bucket, reachable from several machines while a dead laptop is crossed out

Terraform on Proxmox: Declaring My Homelab VMs

How Terraform provisions my Proxmox VMs for Talos: what IaC brings, provider gotchas, k8s-friendly VM settings, and my tfstate’s move to self-hosted S3.

July 8, 2026 · Jonathan Lupica
A large just key on a keyboard fanning out to recipe chips for secrets, talos, flux and terraform

Just: The Command Runner My Homelab Was Missing

Why I replaced ad-hoc shell scripts with just: discoverable recipes, modules, and safer secrets workflows for a homelab Kubernetes repo.

July 3, 2026 · Jonathan Lupica
A PostgreSQL elephant pod hopping from the last pending node to an already-upgraded node during a rolling upgrade

Talos Rolling Upgrades: When a PDB Blocks the Drain

A single-instance PostgreSQL and its PodDisruptionBudget deadlocked my Talos rolling upgrade. How drains fail, and how to sequence around it.

July 3, 2026 · Jonathan Lupica
A crossed-out SSH terminal next to a machine config file driving three Talos nodes

Talos Linux: Kubernetes Without SSH in My Homelab

Why my homelab Kubernetes nodes run Talos Linux: an immutable, API-driven OS with no SSH, no shell, and machine configs versioned in git.

July 3, 2026 · Jonathan Lupica
A pangolin fixing holes in a firewall wall

How I Teamed Up with a Pangolin to Close the Holes in My Firewall

Learn how I replaced my traditional reverse proxy setup with Pangolin’s zero-trust tunneling approach - zero open ports at home.

February 6, 2026 · Jonathan Lupica
Mend Renovate CLI logo

Renovate: Automating Docker Image Updates with Pull Requests

Learn how to automate Docker Compose image updates using Renovate. A GitOps approach to keeping your containers up to date.

February 1, 2026 · Jonathan Lupica