Build from source
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.