Build from source

Build and run Vmango for local development.

Building requires Go 1.26 or newer, a C compiler, pkg-config and the libvirt development libraries, Python 3 and Node/npm (the pinned Node version is in ui/.nvmrc). Creating and reading cloud-init config drives also requires mkisofs and isoinfo, provided by genisoimage or compatible tools.

git clone https://github.com/subuk/vmango.git
cd vmango
make
cp vmango.dist.conf vmango.conf

Edit vmango.conf for your host and web login before starting the server. Use ./bin/vmango genpw to generate a password hash for your configured user. The shared JWT and console signing key is generated on startup when missing. The quick-start guide explains host connections, storage pools and authentication; use ./bin/vmango in place of ./vmango when following it with a source build. The example configuration documents the available settings.

./bin/vmango web -c vmango.conf

Open localhost:8080 once the server is running. Use HTTPS when exposing the web interface remotely, as described in the quick-start guide.

Linux with QEMU/KVM is the main target. Local development on macOS is also possible with QEMU/HVF; see the README for prerequisites.

Verify changes

Run make test to build the embedded browser assets and run the Go tests. Run make ui-test for frontend regression tests and generated API-type checks. Distribution source archives include ui/dist and its source/asset digests; use make UI_PREBUILT=1 to verify and build them without Node or npm. For real VM lifecycle checks, follow the acceptance testing guide. Local Go tests do not establish that real hypervisor operations work.

Code, bug reports and contributions live on GitHub. Include your Vmango version, host setup and relevant logs when reporting an issue.