proxmox-ova-installer is a Go-based CLI tool that runs directly on a Proxmox VE host to import and export OVA virtual appliance packages.
This tool simplifies the deployment and packaging of virtual machines by automating OVA unpacking, disk conversion, and VM creation from within the Proxmox environment.
- ✅ Run directly on Proxmox — no external control node required
- ✅ Extract
.ova
packages and deploy VMs using native Proxmox tools - ✅ Automatically convert
.vmdk
toqcow2
usingqemu-img
- ✅ Generate
.ovf
and.mf
files from existing VMs - ✅ Package a VM into a single
.ova
file for export or distribution - ✅ CLI-first design with clear flags and scripting support
cmd/ # CLI binaries: import/export entrypoints
internal/ # Core logic: unpacking, conversion, Proxmox interfacing
pkg/ # Optional reusable libraries
test/ # Integration/system tests
Makefile # Build and test automation
LICENSE
README.md
go.mod
Build from source directly on your Proxmox server:
git clone https://github.com/yourname/proxmox-ova-installer.git
cd proxmox-ova-installer
make build
Place the resulting binaries in your PATH
, or run them from ./bin
.
sudo ./bin/ovaimport \
--ova /root/images/myvm.ova \
--vmid 105 \
--storage local-lvm \
--node $(hostname)
sudo ./bin/ovaexport \
--vmid 105 \
--storage local-lvm \
--out /root/export/myvm.ova \
--node $(hostname)
- Run as
root
or a user withqm
,qemu-img
, and storage access - Proxmox VE 7.0+ with access to
local
orlocal-lvm
storage qemu-img
installed (already present in Proxmox by default)
Run all unit tests:
make test
Run integration tests (may require a test VM ID):
go test ./test/integration/...
- Automatic VM config inference from
.ovf
- Streamable disk handling for large OVA files
- Export Proxmox template VMs
- Add
--dry-run
mode - Add
--force
overwrite option
MIT License — see LICENSE for details.