Home ยป home lab ยป 8 Virtual Machine Projects You Need to Build This Weekend!
home lab

8 Virtual Machine Projects You Need to Build This Weekend!

Build your home lab skills fast with 8 virtual machine projects to build this weekendโ€”backup, storage, firewall, Kubernetes, and more.

I have been focused a lot on containerized development and DevOps lately and many of the weekend projects I have written about have been focused there. However, for those that love projects involving virtual machines, these are still very much needed and well worth the time and energy to devote time to these in your home lab. I have put together eight virtual machine projects you should consider building right now for serious utility value in your home lab.

1. Docker Container Host VM

Ok, so I had to slip containers in here some where ๐Ÿ™‚ However, the truth of the matter is, containers are not possible without VMs for the most part. You need some type of container host since containers share the host kernel. So, the best way to have a container host is spin up a virtual machine to act as that container host since VMs have so many more advantages for operations than a traditional physical server.

Spin up a virtual machine for your container host. I personally prefer Ubuntu Server 24.04 as my new standard for the home lab. I have a Packer build that rebuilds my template each week to install the latest updates and make sure the build is as close to current as possible, at least in the sense of a week’s time period.

Docker container host virtual machine project
Docker container host virtual machine project

I like Ubuntu because it is just such an easy Linux operating system and has all the benefits of other Linux distros with Debian’s compatibility with everything. However, you can still use vanilla Debian, or Rocky Linux as your host. Install the Docker Engine on your container host and you can start learning containers. This is a super easy project and will reap tremendous rewards in terms of learning. You can spin up multiple container hosts to do something like Docker Swarm or just have more than one standalone host.

Learn how to install Docker in Ubuntu here:

2. Talos Linux Kubernetes Node

If you haven’t heard about Talos Linux, it is a purpose-built Linux operating system for Kubernetes. Talos Linux is a specialized Linux that has no SSH enabled, and you can’t really even login to it in the traditional sense. This is what makes it unique as you have to do everything from an exposed API interface.

The operating system itself is modern and very minimalistic as well as immutable. When you create a VM with Talos you can quickly spin up a dedicated Kubernetes cluster with a control plane node or worker node.

Talos linux virtual machine project for kubernetes
Talos linux virtual machine project for kubernetes

Especially if you want to have the most secure and minimal attack surface as possible, Talos Linux is a great choice and it allows you to start learning Kubernetes at the same time.

Check out my posts on spinning up Talos Kubernetes in Proxmox and VMware vSphere here:

3. Proxmox Backup Server virtual machine

If you run Proxmox (and you should if you have a home lab), Proxmox Backup Server (PBS) is just the natural secondary installation that you spin up as it allows you to back up and protect your Proxmox environment virtual machines and LXC containers with backups.

Proxmox backup server 4.0 virtual machine project
Proxmox backup server 4.0 virtual machine project

Proxmox Backup Server has many great enterprise features like deduplication, incremental backups, and fast restores. This has got even better with Proxmox Backup Server 4.0 that was recently released. You can run it on top of your existing storage in your virtualization environment or point it to a larger disk. By running PBS as a VM itself, it also lets you snapshot the backup server for testing and prior to upgrades for easy rollbacks if needed.

4. pfSense or OPNsense firewall VM

I love running virtualized firewalls. Two really great options for these include pfSense and OPNsense. Both allow you to have enterprise advanced networking features without cost. If you already are running a hypervisor like Proxmox, you don’t have to have dedicated hardware. Instead, you create multiple virtual NICs in your hypervisor on a router VM and you can route traffic accordingly.

Pfsense virtual machine project
Pfsense virtual machine project

This I have found is a great way to experiment with routing and segmentation in your home network, creating restricted zones and segments of your home lab. It also gives you a lab environment to learn about pfSense and OPNsense and their many features. Put a Windows or Linux VM inside the firewall’s protected space to play around with NAT’ing, intrusion prevention and other things.

5. TrueNAS Scale or Core VM

Many do not realize that you can run a NAS operating system like TrueNAS Scale or Core as a virtual machine. And, what is more, you can “pass-through” physical disks to your TrueNAS VM for almost bare-metal performance.

Truenas scale
Truenas scale

TrueNAS offers ZFS-based storage with many enterprise features. TrueNAS Scale is the Linux variety that provides virtual machine and container support. Using TrueNAS you can host SMB, NFS, and iSCSI from a single device and have basically a “LAN in a can” setup.

6. Windows Server Active Directory VM

I have found that even though I have a mostly Linux server home lab, a Windows Server domain controller is extremely useful and provides a lot of features and functionality to test with and host services. For one think I still support Windows Active Directory domain environments in production. So, I like to have things around to test with or on that I support.

Windows server virtual machine project
Windows server virtual machine project

However, as much as ones like to hate on Windows and Active Directory, you will be hard pressed to find a better centralized authentication solution that can enforce consistent policies across the board. Also, Windows Server DNS is extremely powerful as well. I use a Windows Server DNS server as the central DNS solution in my “server” segment of the home lab and it has a conditional forwarder that forwards to an Unbound DNS server that hosts a subset of domain records of a public domain that I own so I can resolve a subset of those records in the home lab, locally.

See how I am doing this in my post here:

You can also get your hands on Windows Server for free using the Microsoft Evaluation Center ISOs. These are good for 180 days which is pretty nice to play around with and experiment with in the home lab.

7. Security Onion VM

If you are interested in security or SecOps, you can run basically a type of mini security operations center (SOC) in your home lab and learn a lot about low-level network security. Security Onion is a solution that is a great way to learn many skills in this space. It is also free and open-source and provides network security monitoring, log management, and intrusion detection.

Security onion
Security onion

Bundled with Security Onion, it has tools like Zeek, Suricata, and Elastic. When you spin it up as a virtual machine, it lets you mirror traffic from your virtual networks and analyze this traffic in real-time.

8. Home Assistant VM

If you want to get into smart home solutions, you can spin up a HomeAssistant virtual machine that gives you one of the best known platforms for building out a smart home. Also, HomeAssistant has made this easy with the HomeAssistant OS virtual appliance. With the HAOS VM, you can easily spin up the solution in a turn-key way inside Proxmox, VMware, etc.

Homeassistant
Homeassistant

The virtual machine version of HomeAssistant is arguably better to run than inside a Docker container as it makes it easier to manage the networking and discovery of devices and integration is easier/better with the VM variety than running it inside a Docker container. Also, while you can passthrough USB devices to Docker, I have found the VM much more reliable to integrate devices and USB Zigbee2MQTT brokers.

Check out a recent post covering HomeAssistant design decisions:

Bonus VM: GitLab CE or Gitea CI/CD

I am a huge advocate to run your own self-hosted code repository inside your home lab. If you are wanting to delve into DevOps workflows, having a dedicated VM for your version control and pipelines is a great start. It will help you learn git skills but also things like CI/CD pipelines.

You can do things also like GitOps when you have a Kubernetes cluster (running on Talos!) in your home lab. I really like GitLab CI as my preferred platform as I have found that GitLab has everything I need for the home lab, including a container registry and CI/CD is built-in. You don’t have to bolt on an extra solution for this.

Gitlab virtual machine project
Gitlab virtual machine project

I really like Gitea as well and this will probably be a great solution for most. It is less fully-featured than something like GitLab, but still awesome nonetheless.

Wrapping up

I think these VM projects hit a sweet spot of project-based learning and provide real “utility value” inside your lab environment. Each of the projects I have listed here are building blocks to other projects and tools that you may want to run in the home lab. Let me know in the comments if there are other VM projects that you would recommend and what VMs you have found to be stepping stones to other learning and functionality in your home lab.

Brandon Lee

Brandon Lee is the Senior Writer, Engineer and owner at Virtualizationhowto.com, and a 7-time VMware vExpert, with over two decades of experience in Information Technology. Having worked for numerous Fortune 500 companies as well as in various industries, He has extensive experience in various IT segments and is a strong advocate for open source technologies. Brandon holds many industry certifications, loves the outdoors and spending time with family. Also, he goes through the effort of testing and troubleshooting issues, so you don't have to.

Related Articles

7 Comments

  1. you kidding. raising a vm to host docker, you serious?
    moreover: home assistant best way is core@docker, not os@vm, deal with it.

    1. Cuvilon,

      Thank you for the comment. I work with several enterprise organizations and by far the most popular way to host a container host is in a VM. It gives you all the benefits of a VM and containers rolled into one.

      Brandon

    2. Indeed. I had the same missconception as the author for some years but recently understood that HA OS in a VM has no real benefit. The only reason to use ha OS are the addons which are just docker containers, so why not use docker containers instead?

  2. Puting a firewall solution and a backup server on the same hypervisor is ballsy!
    When the HV fails (it always does)
    Short from physical access your recovery is not happening

    1. Chris,

      You are absolutely right, you need to have other protections for your data. This is “a” solution for some to keep things simple and collapsed down into a single set of hardware, but you need to do other things like data replication as part of the overall DR strategy. However, even if the hypervisor fails, your data should still be intact in this setup. You would just need to bring up the environment, and get access to your backups.

      Brandon

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.