Ice Station Swarm

Ice Station Swarm

A few years ago, I bought a couple of Raspberry Pi 4s to build a bramble and learn Docker. Apart from Pi-hole, I wasn't sure what I was going to use them for, but I had seen cool little cluster builds and thought it would be fun. Looking back at that first setup, I cringe a bit. I had a pair of Pis running Pi-hole from a Docker Compose file that only worked after I tried enough configurations. It was my first attempt at homelabbing and it was successful enough that I continued to improve on it over time. I knew I didn't want it just running; I wanted it running the right way. Over time, I rebuilt it as a Docker Swarm cluster with GlusterFS and automated most of the configuration with Ansible. After being laid off in December, I now have more free time to revisit the swarm, improve how it runs, and how it is deployed. Simultaneously, I decided to create a blog about my homelab to share what I learn along the way and improve my documentation skills. I struggled with the idea of starting a blog, since blogs seem more like something from the past that have been replaced by YouTube channels. However, the work I do professionally requires good written documentation, and I really don't want to figure out video editing as part of this process.

It's been a while since I've looked at the code for deploying my homelab, and while it is definitely code, it is far from good code. I'm glad it's not in a public repo for the world to see. I'm going to rewrite all of it with a focus on making code that is readable and reusable.

My first step towards this goal is building a dev environment to avoid disruptions to my production homelab. I've created an AWS account and deployed the foundational infrastructure so I can quickly build and destroy a virtual swarm in the sky. I plan on writing more about that in the future, but my Terraform code for building out the environment is available on my GitHub account.