Proxmox VE After a Year: What I'd Install Again
Disclosure: this post contains affiliate links (PartnerStack). If you buy through them I may earn a commission, at no extra cost to you.
Why this matters
Proxmox VE is the default answer when a self-hoster outgrows “a box with Docker on it”. It is also the kind of software people install, use for two weeks, and then either keep for a decade or abandon because the networking confused them.
I have run it for twelve months on the same mini PC that hosts everything I write about. This is what held up, what annoyed me, and what I would do differently.
What it actually is
A Debian-based hypervisor that runs two kinds of guests: full virtual machines on KVM, and system containers on LXC. Both are managed from one web UI on port 8006, with a CLI that mirrors most of it.
The distinction that matters: a VM emulates hardware and can run any OS; an LXC container shares the host kernel and starts in about a second. For a Debian service, LXC is dramatically lighter. For anything with its own kernel — a firewall appliance, a Windows VM, a distro that insists on its own bootloader — use a VM.
What I run on it
- Host: Lenovo M720q, i5-8500T, 32 GB DDR4, 1 TB NVMe
- VMs: a Debian 13 service VM (Docker host for most apps), a Home Assistant OS VM, a Windows VM used twice a month
- Containers: an LXC for the reverse proxy, one for PostgreSQL, one for a scratch environment, one for backups
- Uptime: 12 months, with reboots for kernel updates roughly monthly
Idle memory sits around 18 GB of 32 GB in use, most of it ZFS ARC. CPU idles under 5%.
The feature that justifies the whole thing
Snapshots. Not because they are exotic, but because they change how willing you are to try something risky.
Before a major application upgrade, I take a snapshot, run the upgrade, and if it goes sideways I roll back in under a minute. On a bare-metal Docker host, that same decision means “restore from backup and lose the last day”, so people skip the upgrade instead.
Snapshots are cheap with LXC and with VMs on ZFS or qcow2. They are not backups: a snapshot lives on the same disk, so a disk failure takes both. Treat them as an undo button, not a safety net.
What it does well
The web UI is genuinely good. VM console in the browser, live resource graphs, task log for everything that runs. I open SSH maybe twice a week; the rest is point and click.
LXC is absurdly efficient. A Debian container with PostgreSQL idles at about 40 MB. The same thing in a VM would be 500 MB before the database starts. On a small box, that is the difference between four services and eight.
PCIe and USB passthrough work for the obvious cases — a Zigbee stick for Home Assistant, a second NIC, a GPU for transcoding. It is fiddly rather than hard, and the fiddliness is documented.
Backups are built in. Scheduled vzdump to a second disk, with retention, no extra tooling. Point it at Proxmox Backup Server later if you want deduplication and verification.
What it does less well
The subscription dialog. Every login, a modal asks you to buy support. There are community scripts that remove it; they patch vendor files, and I do not patch software I rely on to hide a button I can ignore. It is annoying, not harmful, and pretending otherwise is dishonest in both directions.
Networking is where newcomers quit. vmbr0 is a Linux bridge, and if you get it wrong you lose the web UI and have to fix it from a physical console. Read the network section before you install, not after.
ZFS will eat your RAM unless you cap it. On 32 GB with a 4 TB pool, the default ARC behaviour left VMs short. Setting a ceiling fixed it:
# cap ARC at 8 GB on a 32 GB host
echo "options zfs zfs_arc_max=8589934592" > /etc/modprobe.d/zfs.conf
update-initramfs -u -k all
No live migration without shared storage. Clustering is real, but the headline features assume a SAN or Ceph. On one node with local disks, migration means shutting the VM down first.
Kernel updates touch the host. It is Debian underneath, so the host needs reboots, and a reboot means every service is down for a minute. Plan them; do not do them at 23:00 on a whim.
What broke in twelve months
A NIC rename after a kernel update. enp0s31f6 became something else, the bridge config no longer matched, and the box came up without network. Fixed at the console in ten minutes, but it is the single most common way people lock themselves out.
USB passthrough did not survive one reboot. The Zigbee stick came back with a different device path because I had passed it by ID from the wrong bus. Passing by vendor/product ID instead made it stable.
One LXC upgrade left it unbootable after a distro release upgrade inside the container. Snapshot rollback, then a redo following the release notes properly. This is exactly the scenario snapshots exist for.
Who should not use it
If you run three Docker containers and nothing else, Proxmox adds a layer without adding value. A plain Debian install with Compose is fewer moving parts, and every tutorial online assumes it.
If you need Windows, or you want to snapshot before risky upgrades, or you want to try a new distro without committing hardware, it pays for itself immediately.
Two integrations decide how much you get out of it, and both are covered elsewhere on this site: scheduled vzdump plus an offsite copy is the routine in the backup guide, and knowing whether the host is healthy — not just the guests — is what the Prometheus and Grafana setup is for. A hypervisor you cannot see into is a hypervisor you find out about from a dead service.
Alternatives
- Plain Debian + Docker — simpler, faster to learn, no snapshot-rollback safety net.
- Incus / LXD — containers as the primary unit, lighter than full virtualisation, less VM tooling.
- XCP-ng — the other serious open-source hypervisor. Better if you want a Xen ecosystem and a management appliance.
- A hosted VPS — if the hardware is the part you do not want to own.
Verdict
8.5/10, and the half point is the subscription dialog.
Twelve months in, I have not reinstalled, have not lost data, and have rolled back three upgrades that would otherwise have cost me an evening each. The RAM appetite and the networking learning curve are real costs, but they are one-time costs, and the snapshot workflow keeps paying back.
If you are buying hardware for a home server this year, install Proxmox on it. If you are running two containers on a Raspberry Pi, do not — you will spend a weekend learning a bridge configuration for no benefit.
References
- Proxmox VE wiki — administration and storage documentation
- Backup and restore in Proxmox VE — modes compared in this review
Tools used in this post
FAQ
Do I have to pay for Proxmox?
No. The software is free and fully functional without a subscription. You use the no-subscription repository for updates, and the web UI shows a dialog asking you to buy support. The paid subscription gets you the enterprise repo and a support contract, not extra features.
Can I remove the subscription nag dialog?
There are scripts that patch it out. They also modify files the vendor maintains, so an update can undo or break them, and you are changing software you did not pay for to hide a request you can simply ignore. I left it in place; it is one click per login.
How much RAM does Proxmox itself need?
The hypervisor is light — under a gigabyte at idle. The number that matters is the ZFS ARC cache if you use ZFS, which will happily take half your RAM by default. On a 32 GB box I cap it, because otherwise the file cache starves the VMs.
Is Proxmox overkill for one or two services?
Probably. Docker Compose on a plain Debian install is simpler and has fewer moving parts. Proxmox earns its place when you want to snapshot before an upgrade, run different operating systems, or move a VM between machines.