Managing My Homelab: How I Use Salt for Customization and Automation

Given the choice I would treat all my homelab servers as cattle1 however there are components that do need bespoke configuration. My main home server acts as my Kubernetes Master, my on-site backup server and my Salt master. My ArchLinux home server acts as a package mirror for my desktop and laptop while also building my AUR packages to ensure they stay up to date and consistent between machines. On the other hand most of my machine configuration is fairly identical between my homelab machines. I want the same CLI tools available, similar backup configurations and want to make sure any new host can be added to Kubernetes without issue if applicable. Between these common configurations and my preference for Programmatic Configuration I knew I needed some sort of Configuration Management tool. Even my pet servers become more cattle-like since their configuration is easily reproduced on a new machine in case of a failure. ...

June 9, 2025 · 7 min · 1315 words · Jonathan

My Dotfile Workflow: Stow, Git Filters, and Encryption

There are dozens of ways to manage your dotfiles. From manually copying files from one machine to another, to putting them in a git repository and manually linking the files to their targets, to using tools that copy files into place and keep them in sync. Managing dotfiles can become a constant challenge, especially when you regularly use more than one machine. For my part I primarily work on 2 machines, my desktop and my laptop. I have various VPSes and Servers in my homelab that need some of my configuration, but only the parts that deal with shell interaction. I also have my .emacs configuration that I do at times use elsewhere (such as on a work machine if it is permitted) so it belongs in a separate repo for ease of access. ...

May 26, 2025 · 8 min · 1682 words · Jonathan