Introduction

Every homelab starts with hardware.

After running virtualized environments on my main machine for a while, I decided to move to a dedicated low-power server. I chose the GMKtec M5 Plus (AMD) with:

  • 32GB RAM
  • 1TB NVMe SSD
  • Small form factor
  • Low power consumption

It was compact, quiet, and powerful enough to comfortably run multiple virtual machines and Kubernetes clusters.

This post documents how I set up Proxmox VE on it and prepared it to become the foundation of my homelab.


Why the GMKtec M5 Plus?

I wanted something:

  • Small and unobtrusive
  • Energy efficient (runs 24/7)
  • Capable of running multiple VMs simultaneously
  • Affordable compared to full rack hardware

With 32GB RAM and a fast SSD, it gives me enough room to experiment with:

  • Kubernetes clusters
  • Monitoring stacks
  • AI workloads (next phase)
  • CI/CD tooling
  • And the occasional “break everything and rebuild” session

Installing Proxmox VE

Step 1: Download Proxmox ISO

I downloaded the latest Proxmox VE ISO from:

https://www.proxmox.com/en/downloads

Then I created a bootable USB using:

Since I was using Windows on my main machine, I created a bootable USB with Rufus:

  1. Plug in a USB drive (at least 8GB)
  2. Open Rufus
  3. Select the downloaded Proxmox ISO
  4. Choose GPT partition scheme (UEFI)
  5. Click Start and wait until the USB is ready

Once done, I booted the GMKtec M5 Plus from the USB to start the Proxmox installation.


Step 2: BIOS Configuration

Before installing Proxmox, I entered the BIOS and enabled:

  • SVM (AMD virtualization)
  • IOMMU (if planning PCI passthrough)
  • Secure Boot disabled

This ensures proper virtualization support.


Step 3: Proxmox Installation

Booted from USB and selected:

  • Install Proxmox VE
  • Target disk: 1TB NVMe SSD
  • Filesystem: (default ext4 or ZFS single disk)

For this setup, I used:

  • Single disk configuration
  • Static IP configuration
  • Dedicated management IP in my home network

Example:

192.168.1.50

After installation completed, I rebooted and accessed the web interface:

https://192.168.1.50:8006

Initial Proxmox Configuration

Once logged into the web UI:

1. Remove Enterprise Repository (if not subscribed)

Edit:

nano /etc/apt/sources.list.d/pve-enterprise.list

Comment out the enterprise repo and enable the no-subscription repo:

deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

Then:

apt update && apt upgrade -y

2️. Configure Storage

With 1TB SSD, I structured storage for:

  • ISO images
  • VM disks
  • Backups
  • Templates

I reserved space for:

  • Cloud-init templates
  • Kubernetes nodes
  • Future AI experimentation

3. Create a Cloud-Init Template

Instead of manually installing Ubuntu repeatedly, I created a reusable template:

  • Download Ubuntu cloud image
  • Create a new VM
  • Attach cloud image disk
  • Enable QEMU agent
  • Convert to template

This became the base for:

  • Terraform provisioning
  • Automated Kubernetes node deployment
  • Networking Setup

I kept networking simple:

  • Default Linux bridge (vmbr0)
  • All VMs connected to the same LAN
  • Static IP assignment via cloud-init or DHCP reservation

This allowed:

  • Easy SSH access
  • Clean Ansible integration
  • Simplified cluster communication

Why Proxmox?

I chose Proxmox because:

  • Web-based management
  • Native KVM virtualization
  • Easy backups & snapshots
  • Strong community support
  • Works well with Terraform provider

It strikes a balance between:

“Just works” But still powerful enough for advanced use cases


How It Evolved

Initially, this server powered:

  • A K3s cluster
  • GitLab instance
  • Monitoring stack
  • Vault experiments
  • Terraform automation

Later, I tore down many of these VMs to rethink my direction — especially as my professional work became more Kubernetes-heavy.

Now, this same Proxmox node is becoming the base for something different:

  • AI workloads
  • Personal assistant experiments
  • More human-centered automation

Lessons Learned

Some things I would recommend:

  • Always create templates early
  • Automate VM creation (Terraform helps massively)
  • Separate “experiment” VMs from “core services”
  • Keep backups before tearing down clusters

Most importantly:

Treat your homelab as something that evolves with you.


Final Thoughts

The GMKtec M5 Plus turned out to be a perfect entry-level homelab server:

  • Quiet
  • Efficient
  • Capable
  • Flexible

It may not be enterprise hardware, but it’s more than enough to learn, experiment, and occasionally break things without regret.

And in many ways, that’s exactly what a homelab should be.