Blog / šŸ–„ļø My Homelab OS Journey: From VirtualBox to Containers and Beyond

šŸ–„ļø My Homelab OS Journey: From VirtualBox to Containers and Beyond

Published on June 05, 2025

Hey tech enthusiasts! I’m back with the fourth installment of my homelab series, where today we’ll dig into the operating system powering my digital playground.

Having worked in datacenter environments for years, I’ve had the opportunity to get my hands dirty with more hypervisor platforms than most IT professionals typically encounter. This experience has profoundly shaped how I approach virtualization in my homelab today.

But before diving into my current setup, let’s take a step back for those newer to the concept.

🧩 What Exactly is a Hypervisor?

A hypervisor, at its core, is software that creates and runs virtual machines (VMs). Think of it as a magic layer that sits between your physical hardware and the operating systems you want to run, allowing multiple OS instances to share the same physical computing resources.

Hypervisors come in two main flavors:

  • Type 1 (Bare Metal): These run directly on the host’s hardware (like VMware ESXi, Proxmox, or Hyper-V)
  • Type 2 (Hosted): These run on top of a conventional operating system (like VirtualBox or VMware Workstation)

The beauty of hypervisors is they let you maximize hardware utilization by running multiple isolated systems on a single physical machine—perfect for homelabbers with limited hardware but unlimited curiosity!

šŸ‘¶ My First Virtualization Experience

My virtualization journey began far earlier than my professional career—with VirtualBox that came pre-installed on my PC when I was just a kid. I remember the sense of wonder as I spun up my first VM on my Windows machine. It felt like some kind of digital sorcery, being able to run an entirely different OS inside a window.

Little did I know then that this simple tool would become the gateway drug to my future career path and homelab obsession.

šŸ” The Android TV Box Experiment: Bare Metal Only

As I mentioned in my previous post, my first serious homelab server was a repurposed Android TV box. With its ARM processor and limited resources, traditional virtualization was simply not an option. Instead, I ran an ARM-tuned Ubuntu directly on the hardware.

This constraint became a blessing in disguise, forcing me to learn about resource optimization and the nuances of ARM architecture. Sometimes, limitations push us to learn things we might otherwise skip over.

🧪 Hypervisor Experimentation Phase

Once I upgraded to more capable hardware, I went through what I call my ā€œhypervisor dating phaseā€ā€”trying various platforms to find the perfect match for my needs:

  • XCP-ng: Impressive open-source offering with enterprise features
  • Proxmox: Fantastic community support and remarkably user-friendly
  • VMware ESXi: The familiar face from my professional life
  • Others: Brief flirtations with Hyper-V and KVM

Each had their strengths. VMware felt like home after years of working with it professionally. Proxmox impressed me with how user-friendly it was while still offering enterprise-grade features—truly a homelab darling for good reason.

šŸ¤” The Realization: Overkill for My Needs

After all this experimentation, I had an epiphany: most of my workloads were running as containers, not full VMs. Using a heavy hypervisor started feeling like bringing a tank to a bike race—impressive but inefficient.

This realization led me to my current setup…

šŸ‹ My Current Choice: Containers First

Today, my homelab runs primarily on Incus (based on LXD) with Lxconsole providing a GUI management interface. For the occasional need to run full virtual machines, I leverage Qemu on demand.

This approach gives me:

  • Efficiency: Containers share the kernel, using significantly fewer resources than VMs
  • Speed: Lightning-fast startup times compared to full virtualization
  • Density: I can run many more workloads on the same hardware
  • Flexibility: When I genuinely need full virtualization, Qemu is there

The vast majority of my services run as Docker containers, which I’ve found perfect for most homelab applications like Plex, HomeAssistant, Nextcloud, and various monitoring tools. Docker’s ecosystem makes deployment straightforward, updates simpler, and resource isolation clean.

For applications that don’t play nicely with Docker (like certain instances of Home Assistant or specialized services with specific kernel requirements), I use Incus containers (LXD-based). These provide a nice middle ground—more isolated than Docker but less resource-intensive than full VMs—essentially giving me lightweight virtual machines with near-native performance.

You can learn more about how Incus works from this video by Awesome Open Source

šŸ“Š Why This Works For Me

This containerization-first approach aligns perfectly with modern DevOps practices. It’s lightweight, resource-efficient, and mirrors how many applications are deployed in production environments today.

The journey from hypervisors to containers wasn’t about finding the ā€œbestā€ technology—it was about finding the right tool for my specific needs. There’s no one-size-fits-all solution in homelabbing!

šŸ”® Future Plans: Addressing the Storage Question

The one piece currently missing from my homelab puzzle is redundant storage. My current setup uses local disks, which work fine but lack proper redundancy for the data I care about.

My next major upgrade will likely be adding a dedicated NAS, most probably running TrueNAS. This will provide:

  • Proper RAID protection
  • Snapshots for point-in-time recovery
  • Centralized storage accessible to all homelab components
  • Potentially 10Gbit networking for faster data access

šŸ’­ Final Thoughts

My journey through various virtualization technologies taught me something important: the ā€œbestā€ solution isn’t about what’s most powerful or what has the longest feature list—it’s about what most efficiently meets your specific needs.

For a container-centric homelab like mine, the lightweight approach of running Docker containers for most services, Incus containers for Docker-unfriendly applications, and occasional Qemu usage provides the perfect balance of flexibility, resource efficiency, and ease of management.

What virtualization platform are you running in your homelab? Have you found yourself evolving toward containers as well? Share your experiences in the comments!

#HomeLab #Virtualization #Containers #Docker #Incus #DevOps #Hypervisor #SelfHosted

Ā© 2024 Samundra Raj Bajracharya