Recently I decided to try and throw together a one stop shop for managing frequently performed actions in my homelab. The goal was to enable me to faster create VMs, test software, rip them down, and rebuild. This is where I started with LabMan - HomeLab Manager. It is very alpha. Very very alpha. It consists of 2 components: a Rails application that handles background jobs and the web UI, and an agent written in Go that runs on the servers and checks them in while providing some general info such as installed packages.
HAProxy is my homelab loadbalancer of choice due to it’s versatility and general ease of configuration. Whether it’s HTTP or just plan TCP traffic I want to land within my lab, a few tweaks to an HAProxy config is all it takes. However, as I deploy more and more random services, which I want available from the internet, having to remote into my various HAProxy ingress servers becomes a pain. Also, since I like to have isolated HAProxy instances depending on what I’m doing, yet again having to remote into boxes to make changes becomes even more tiresome.
Odds are if you’ve landed here you’re aware of what Paperclip is and the purpose it servces within a Rails application. If not, it’s basically a gem that will handle file uploads. In my case I use it for resizing images, saving them somewhere (S3), then easily presenting them back to the user inside of a view. Note: This tutorial should work with any S3 compatible object storage API. Minio is just one of the more common ones.