Getting Started with Proxmox VE for Your Home Lab
Proxmox VE (Virtual Environment) is an open-source virtualization platform that combines KVM-based virtual machines and LXC-based containers into a single management interface. It’s the backbone of many home labs — including mine.
If you’re coming from products like VMware vSphere or Hyper-V, Proxmox feels refreshingly simple. If you’re new to virtualization entirely, it’s still approachable thanks to its web UI and excellent documentation.
Why Proxmox for a Homelab?
- All-in-one: VMs, containers, storage, and networking in a single platform
- Web UI: No CLI wizardry required for day-to-day operations
- LXC containers: Lightweight OS-level virtualization — boots in seconds
- ZFS support: Built-in filesystem with snapshots, compression, and dedup
- Clustering: Link multiple nodes into a cluster for HA and migration
- Free: Open source with a optional subscription for enterprise repo access
Installation Basics
Download the ISO from proxmox.com, write it to USB, and boot. The installer walks you through:
- Target disk selection
- Filesystem choice (I recommend ZFS for the snapshot capabilities)
- Network configuration (hostname, IP, gateway, DNS)
- Root password
Post-install, you access the web UI at https://your-host-ip:8006.
Creating Your First LXC Container
The workflow that I use most is LXC containers for individual services. Here’s how to create one from the web UI:
- Download a template: Go to your storage node → Templates → search for
debian-13→ Download - Create CT: Click “Create CT” — give it an ID (I start at 100+), hostname, and root password
- Configure networking: Pick a bridge (usually
vmbr0), set IP to DHCP or static - Set resources: Assign cores, RAM, and disk space
- Start and access: The container boots in under a second. SSH in or use the console tab
For CLI users, the equivalent one-liner is:
pct create 100 local:vztmpl/debian-13-standard_13.0-1_amd64.tar.zst \
--hostname my-container \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--storage local-lvm \
--unprivileged 1
Post-Install Essentials
Once your container is running, there are a few things I always do:
1. Set up sudo
Debian templates don’t include sudo:
apt update && apt install -y sudo
usermod -aG sudo your-user
2. Harden SSH
Edit /etc/ssh/sshd_config:
PermitRootLogin prohibit-password
PasswordAuthentication no
Then restart SSH. You should already have your SSH key injected via --ssh-public-keys during creation.
3. Set a hostname and update /etc/hosts
hostnamectl hostname my-container
echo "127.0.1.1 my-container" >> /etc/hosts
Networking Tips
Most homelabs use a simple bridged networking setup. When you install Proxmox, it creates vmbr0 — a bridge connected to your physical NIC. All containers and VMs attach to this bridge and appear as devices on your physical network, getting IPs from your existing DHCP server.
If you want more control, set up additional bridges with NAT or isolated VLANs. This is useful for lab networks where you don’t want devices to interact with your main home network.
Backup Strategy
Proxmox’s backup is one of its strongest features:
- Snapshots: Instant, zero-downtime snapshots of running containers
- Scheduled backups: Full or incremental backups to any storage target
- Restore: Point-and-click restore to the same or different node
I back up all infrastructure containers nightly to a dedicated storage volume. A full restore takes about 30 seconds.
Next Steps
Proxmox is deep enough for enterprise use but approachable enough for a weekend project. Once you have your first container running, explore:
- Setting up a dedicated DHCP server (see my ISC DHCP post)
- Configuring a reverse proxy for TLS termination
- Building a monitoring stack with Grafana and Loki
- Automating container creation with Ansible
The Proxmox community wiki and forums are excellent resources when you get stuck.