Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

pve-microvm

pve-microvm

pve-microvm in the Proxmox web UI

A Debian package that adds QEMU microvm machine type support to Proxmox VE. Runs OCI container images, Firecracker rootfs images, unikernels, and alternative OS as lightweight hardware-isolated VMs.

⚠️ Highly experimental. This project patches qemu-server internals and has not been tested in production. Use at your own risk. The patches are fully reversible — uninstalling the package restores the original files.

📝 Blog post with some background · ❓ FAQ


Why

We needed something between LXC containers and full QEMU VMs for running coding agents and other semi-trusted workloads.

LXCmicrovmStandard VM
IsolationNamespace (shared kernel)KVM (own kernel)KVM (own kernel)
Boot time~50 ms< 300 ms2–10 s
OverheadMinimalMinimalModerate
Attack surfaceBroad (host kernel)Minimal (virtio-pcie)Broad (emulated PC)
Untrusted code⚠️ risky✅ safe✅ safe

Hardware-isolated VMs with container-like speed, managed through the same Proxmox tools you already use. No new runtime — QEMU's microvm machine type is already on every PVE node.


Highlights

  • 50 features shipped — templates, cloning, networking, HA, web UI, backups
  • 21 guest OS — 13 Linux distros + SmolBSD, OpenWrt, OPNsense, 9Front, OSv, gokrazy, Firecracker
  • 31 ms boot (SmolBSD) to ~2 s (Alpine) to ~8 s (Debian)
  • Create µVM button in PVE web UI with OCI image picker
  • All storage backends — LVM, LVM-thin, ZFS, NFS, CIFS, Ceph
  • HA + migration — offline migration in 2 seconds, ha-manager relocate
  • Tested on 4 nodes — from Atom x5-Z8350 (2 GB) to i7-12700 (128 GB)

Quick start

# Install (always fetches the latest release)
curl -sLO $(curl -s https://api.github.com/repos/rcarmo/pve-microvm/releases/latest | grep browser_download_url | grep '.deb' | cut -d'"' -f4)
dpkg -i pve-microvm_*.deb

# Create a template from any OCI image
pve-microvm-template --image debian:trixie-slim

# Clone and boot
qm clone 9000 901 --name my-sandbox --full
qm start 901
qm terminal 901

Or use the Create µVM button in the PVE web UI.


Supported guests

CategoryImages
Linux (apt)Debian, Ubuntu
Linux (apk)Alpine
Linux (dnf/tdnf)Fedora, Rocky, Alma, Amazon, Oracle, UBI, Photon, Azure Linux
Router/FirewallOpenWrt, OPNsense
BSDSmolBSD (NetBSD, 31ms boot)
Plan 99Front
UnikernelOSv, gokrazy
CompatibleAny Firecracker rootfs (ext4 import)

What's included

ComponentDescription
pve-microvm-templateCreate PVE templates from OCI images or specialist OS
pve-oci-importConvert any OCI image to a bootable microvm disk
pve-microvm-shareShare host directories via virtiofs
pve-microvm-9pShare host directories via 9p (no daemon)
pve-microvm-ssh-agentForward SSH agent via vsock
pve-microvm-runEphemeral microvms (run and destroy)
pve-microvm-benchBoot time and overhead benchmarking
Web UICreate µVM dialog, ⚡ icon, xterm.js console, panel hiding
KernelPre-built 6.12.22 with PCIe virtio + vsock + virtiofs

Tested on

z83ii (worst-case)borg (reference)
CPUAtom x5-Z8350 @ 1.44 GHzi7-12700 @ 4.9 GHz
RAM2 GB128 GB
PVE9.1.9 (qemu-server 9.1.8)9.1.7 (qemu-server 9.1.6)
QEMU10.1.210.1.2

Full cluster: 4 nodes — see Cluster Hardware.


Documentation


Roadmap

FeaturePriority
Network off by defaultMedium
Egress allow-list (nftables)Medium
Memory management (free-page-reporting, deflate-on-oom, auto-ballooning, virtio-mem)Done v0.3.12
Declarative VM config (TOML)Low
GPU passthroughLow
AArch64 guest supportLow
Upstream RFC for pve-develLow

License

Apache-2.0

关于 About

Firecracker-like microVMs for Proxmox VE — KVM isolation, under 200 ms boot.
homelabmicrovmproxmoxsandboxing

语言 Languages

Shell62.0%
JavaScript23.5%
Perl11.7%
CSS1.9%
Makefile0.9%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
207
Total Commits
峰值: 124次/周
Less
More

核心贡献者 Contributors