The Familiar Problem: Power-Hungry Homelabs
I run a homelab with Proxmox VE managing 12 VMs and containers — it’s my playground for testing everything before pushing to production. The problem is that the x86 server draws around 180–220W continuously, 24/7. The monthly electricity bill adds up fast, not to mention the constant fan noise.
The Raspberry Pi 5 is equipped with the BCM2712 chip (ARM Cortex-A76, quad-core 64-bit) and options up to 8GB RAM. Most importantly, it has hardware virtualization extensions (VHE) — something the previous Pi generations completely lacked. Power consumption is just 5–12W, price is around $80 USD, while that 220W x86 server burns 15–20× more electricity.
What sets this apart from a typical Proxmox installation: Proxmox has no official ISO installer for ARM64. Instead, we install Debian Bookworm ARM64 first, then inject Proxmox VE on top — exactly how Proxmox builds their own product.
Before You Start: ARM64 and What You Need to Know
Why ARM64 and Not x86?
The Raspberry Pi 5 uses the ARM64 (aarch64) architecture, which is fundamentally different from the x86_64 found in typical laptops and desktops. This sounds simple, but it has some direct consequences:
- VM guests must also be ARM64 — you can’t run Windows x86 or standard x86 ISOs
- LXC Linux containers work fine since they share the kernel with the host
- Most popular Linux distros (Debian, Ubuntu, Alpine) have ARM64 builds
How Does Proxmox VE Work on ARM64?
Proxmox VE is a management layer built on top of Debian. On x86, they provide a custom kernel with many patches. On ARM64, we use the Debian/Raspberry Pi kernel but install the full Proxmox VE stack: web UI, KVM, LXC, storage management, and cluster support. For homelab purposes — creating VMs, managing containers, configuring storage — the interface and experience is nearly identical to the x86 version.
Hardware and Software Requirements
Here’s what you need before getting started:
- Raspberry Pi 5 8GB (4GB works but gets tight when running multiple containers)
- 64GB+ NVMe SSD via PCIe HAT (strongly recommended — microSD is slow and unreliable)
- Official Raspberry Pi 27W USB-C power supply (insufficient wattage will cause throttling)
- Ethernet cable connected directly to your router (don’t use WiFi for a server)
- Another computer for SSH access and management
Step-by-Step Installation
Step 1: Flash Debian Bookworm ARM64
Download Raspberry Pi Imager on your computer and select Raspberry Pi OS Lite (64-bit) — this is Debian Bookworm ARM64. In the Advanced Settings before flashing:
- Enable SSH
- Set hostname:
proxmox-pi - Create a user and password
Flash to SSD/SD, plug into the Pi and wait for it to boot. SSH in from your computer:
ssh [email protected]
# Or use a specific IP if mDNS doesn't work
ssh [email protected]
Step 2: Configure Hostname and Static IP
Proxmox requires the hostname to be resolvable via /etc/hosts. Skipping this step will cause errors during installation:
sudo hostnamectl set-hostname proxmox-pi
sudo nano /etc/hosts
Add this line to the file (replace the IP with your machine’s actual IP):
192.168.1.100 proxmox-pi.local proxmox-pi
Set a static IP to avoid losing your connection after a reboot:
sudo nano /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
dns-nameservers 1.1.1.1 8.8.8.8
Update the system before continuing:
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y curl wget gnupg2
Step 3: Add the Proxmox Repository for ARM64
This is the key difference — completely unlike installing on x86:
# Add the Proxmox GPG key
wget -qO /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg \
https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg
# Add the no-subscription repo (free, supports both amd64 and arm64)
echo "deb [arch=amd64,arm64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
| sudo tee /etc/apt/sources.list.d/pve-no-sub.list
sudo apt update
Step 4: Install Proxmox VE
On ARM64, do not install proxmox-default-kernel — that’s an x86 kernel. Keep the Raspberry Pi kernel and install the Proxmox VE stack directly:
sudo apt install -y proxmox-ve postfix open-iscsi chrony
This process takes 10–20 minutes depending on your internet speed. When postfix asks for configuration, select “Local only”.
After installation is complete, reboot:
sudo reboot
Step 5: Access the Proxmox Web UI
Open your browser and navigate to:
https://192.168.1.100:8006
The browser will warn about a self-signed certificate — ignore it and proceed. Log in with:
- Username:
root - Password: your Debian root password
- Realm: Linux PAM standard authentication
If the Proxmox dashboard loads — you’re done. There’s something genuinely impressive about seeing Proxmox running on a board the size of your palm for the first time.
Step 6: Disable the License Nag Popup
Using the free community edition means a popup on every login. Here’s how to get rid of it:
# This command may change between Proxmox versions — check your version first
pve6to7 --version || pveversion
# Patch the JS file (adjust the path if needed)
sudo sed -i.bak "s/if (res === null || res === undefined || \!res || res/if (false || res/g" \
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
sudo systemctl restart pveproxy
If the sed command doesn’t work (Proxmox updated their code), search for the new string in that file to patch it — the community usually updates the instructions whenever a new Proxmox version is released.
Step 7: Create Your First LXC Container
LXC containers are much lighter than VMs, making them a great fit for the RPi 5’s 8GB RAM. Download a Debian ARM64 template:
# In the Proxmox shell, download the LXC template
pveam update
pveam available | grep debian
pveam download local debian-12-standard_12.7-1_arm64.tar.zst
Or via the UI: Datacenter → Node → local → CT Templates → Templates → Download. Select the arm64 version.
Create a new container via UI or command line:
# Create container ID 100, 512MB RAM, 8GB disk, bridged network
pct create 100 local:vztmpl/debian-12-standard_12.7-1_arm64.tar.zst \
--hostname mycontainer \
--memory 512 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp
# Start the container
pct start 100
# Enter the container shell
pct enter 100
Real-World Limitations to Know
I’ll be upfront so you don’t set the wrong expectations:
- No PCI passthrough: you can’t pass a GPU or NIC card into a VM
- Guests must be ARM64: no Windows, no x86 ISOs
- 8GB RAM is tight for full VMs: each minimal Debian VM uses 256–512MB, so you can comfortably run 3–4 VMs
- Avoid microSD as primary storage: slow I/O and prone to failure — investing in an NVMe HAT is well worth it
On this setup, Pi-hole, Uptime Kuma, Nginx Proxy Manager, and Gitea all run in parallel inside LXC containers — totaling around 1.5GB RAM. For services that need to run 24/7 without hammering the CPU, this is an ideal environment.
Conclusion
$80 in hardware, a few hours of setup, and you have a Proxmox node consuming under 12W of power. It can’t replace an x86 server for heavy workloads, but for learning virtualization, running small home services, or acting as a secondary node in a cluster — the Raspberry Pi 5 exceeds expectations.
What I appreciate most about this setup: I can freely create, delete, and break VMs without any risk to the production server. That’s the real value of a homelab.

