As a technology consultant, I need a network environment to evaluate, test and deploy a myriad of applications.
In the Beginning, there was Bare Metal. I ran a stable of obsolete desktop PCs in a garage lab, each running an operating system I was working on. That meant running enterprise applications on marginal hardware and inflated utility bills paying to power several inefficient desktop PCs.
Then came desktop virtualization, or what they refer to as a “type 2” hypervisor. With VMWare and VirtualBox, I could run one virtual Linux environment on my Windows desktop, but would need to shut it down when I wasn’t using it. Once desktop virtualization worked, the garage lab went into e-waste.
I needed was a “type 1” hypervisor that runs virtual machines directly on dedicated hardware to support multiple machines running 24/7. At work, I run VMWare’s vSphere platform, a robust environment that provides virtualization, high availability, hybrid cloud/on-premise computing, desktop virtualization and more. It’s a little more than what I’d need to set up a home lab environment and vSphere is picky about what hardware it’ll run on.
I discovered Proxmox – a hypervisor similar to vSphere. Proxmox is open source, and supports any hardware that will run Debian linux and Qemu.
Proxmox does everything I’d need, including network bridges, clustering, support for network storage using NFS, CIFS and Ceph, built-in storage and backup tools. Since the back-end is Debian Linux, I can use tools like Rclone to mirror my VMs to the cloud.
While I could virtualize entire systems with Proxmox, I was more interested in containers. Proxmox supports LXC (Linux Containers), but I was more interested in Docker containers. Proxmox doesn’t support Docker directly, but can run a guest OS that *does*. With a VM running Ubuntu Server 20.04, I had my docker host.
Within my Docker host, I’m running Nginx Proxy Manager to allow me to expose my home lab systems safely to the outside world using SSL encryption. I’m running Pi-Hole as a DNS/DHCP server and blocking ads from all of my PCs, phones and internet-enabled devices. Grafana is monitoring my internet speed, and I have a menu system managing it all – running in its own Docker container.
This solution gives me access to the container ecosystem, lets me spin up and take down containers quickly for testing, and allows me to run home services efficiently while saving a ton on my power bill.