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:
- Plug in a USB drive (at least 8GB)
- Open Rufus
- Select the downloaded Proxmox ISO
- Choose GPT partition scheme (UEFI)
- 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.