Skip to content

volantvm/volant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VOLANT β€” The Intelligent Execution Cloud

Build Status Latest Release Go Version License

πŸ’‘ Need help deploying or extending this? β†’ hello@volantvm.com


Volant

The modular microVM orchestration engine.

Volant lets you spin up fully isolated microVMs as easily as running a container β€” with real kernels, VFIO passthrough, and cloud-init built in.

Volant turns microVMs into a first-class runtime surface. The project ships a control plane, CLI, and agent that speak a common plugin manifest so teams can run secure, stateful workloads without stitching together networking, scheduling, and lifecycle plumbing themselves.

Runtime-specific behavior lives in signed manifests and their associated artifacts. The core engine stays lean while plugin authors ship the kernels/initramfs overlays and workload processes their runtime requires. Operators decide which manifests to install and must reference one whenever a VM is created.

Together with fledge β€” the artifact builder β€” Volant provides a complete solution for building and deploying microVM's with custom applications embedded in initramfs, or with the regular OCI images we are familiar with.

Cloud-init support makes Volant ideal for dev sandboxes, while VFIO passthrough allows for isolation of GPU and AI workloads.

Batteries Included By Default

Volant ships with sensible defaults out of the box, lowering the barrier to entry while keeping full configurability for power users

However, Volant is built to be modular, scriptable and configurable beyond those defaults, and advanced users can customize it to their own needs.

For instance, the Kestrel agent acts as a robust PID1 and is responsible for setting up the guest environment in multiple scenarios, and also acts as a secure proxy to workloads inside network-isolated VM's over vsock, providing a frictionless path to maximum isolation.

If you require more fine-grained control, it is possible to override the kernel paths and the fledge artifact builder has configuration settings for using your own init. Refer to the documentation for more details.


Overview

Volant provides:

  • volantd β€” Control plane (SQLite registry + VM orchestration)

  • volar β€” CLI for managing VMs and plugins

  • kestrel β€” In-guest agent & init (PID 1)

  • fledge β€” Plugin builder (OCI images β†’ bootable artifacts)

Two paths, same workflow:

  1. Rootfs strategy β€” Convert OCI images to bootable disk images (Docker compatibility)
  2. Initramfs strategy β€” Build custom appliances from scratch (maximum performance)

Quick Start

Spin up your first microVM in under a minute.


1. Install the Volant toolchain

# This installs volar (CLI), volantd (control plane), kestrel (guest agent),
# and default kernels to /var/lib/volant/kernel.
# By default, setup creates a bridge (vbr0) at 192.168.127.1/24.

curl -fsSL https://get.volantvm.com | bash

Tip: To inspect or customize network setup later:

sudo volar setup --help

If you prefer to skip automatic setup and handle networking yourself:

curl -fsSL https://get.volantvm.com | bash -s -- --skip-setup

2. Install a pre-built plugin

Let’s start with a Caddy initramfs plugin (initramfs-plugin-example)

volar plugins install --manifest \
  https://github.com/volantvm/initramfs-plugin-example/releases/latest/download/caddy.json

3. Create and run your first VM

volar vms create web --plugin caddy --cpu 2 --memory 512

Check it’s alive:

curl 192.168.127.10
# β†’ Hello from Caddy in a Volant microVM! πŸš€

4. Try a Docker-based workload (oci-plugin-example)

This example runs NGINX directly from the official Docker image:

volar plugins install --manifest \
  https://github.com/volantvm/oci-plugin-example/releases/latest/download/nginx.json

volar vms create my-nginx --plugin nginx --cpu 1 --memory 1024
curl http://192.168.127.11

5. Scale declaratively (Kubernetes-style)

cat > web-config.json <<'EOF'
{
  "plugin": "caddy",
  "resources": {
    "cpu_cores": 2,
    "memory_mb": 512
  }
}
EOF

volar deployments create web-cluster \
  --config web-config.json \
  --replicas 5

Result: 5 isolated microVMs, each with its own kernel, IP, and lifecycle management.


Done β€” you’ve just deployed a replicated microVM cluster with real kernel isolation, no YAMLs, and zero boilerplate.

Build Your Own Plugin

Use fledge to build custom plugins from OCI images or static binaries.

Examples:


Why Volant?

Feature Containers Volant microVMs
Isolation Kernel shared Hardware-level (dedicated kernel)
Boot time ~1s 50-150ms (initramfs) / 2-5s (rootfs)
Image size 80 MB (NGINX) 20 MB (full appliance)
Security Namespaces Full VM isolation
Overhead Shared kernel ~25 MB per VM
Networking NAT/bridge/overlay Simple Linux bridge
GPU Passthrough Limited Native VFIO for AI/ML

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Host Machine               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚    volantd (Control Plane)        β”‚  β”‚
β”‚  β”‚  β€’ SQLite registry                β”‚  β”‚
β”‚  β”‚  β€’ IPAM (192.168.127.0/24)        β”‚  β”‚
β”‚  β”‚  β€’ Cloud Hypervisor orchestration β”‚  β”‚
β”‚  β”‚  β€’ REST + MCP APIs                β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                  β”‚                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚     Bridge Network (vbr0)         β”‚  β”‚
β”‚  β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚   β”‚        β”‚        β”‚        β”‚           β”‚
β”‚  β”Œβ–Όβ”€β”€β”   β”Œβ–Όβ”€β”€β”   β”Œβ–Όβ”€β”€β”   β”Œβ–Όβ”€β”€β”         β”‚
β”‚  β”‚VM1β”‚   β”‚VM2β”‚   β”‚VM3β”‚   β”‚VMNβ”‚         β”‚
β”‚  β”‚β”Œβ”€β”€β”   β”‚β”Œβ”€β”€β”   β”‚β”Œβ”€β”€β”   β”‚β”Œβ”€β”€β”         β”‚
β”‚  β”‚β”‚β”‚   β”‚β”‚β”‚   β”‚β”‚β”‚   β”‚β”‚β”‚         β”‚
β”‚  β”‚β””β”€β”€β”˜   β”‚β””β”€β”€β”˜   β”‚β””β”€β”€β”˜   β”‚β””β”€β”€β”˜         β”‚
β”‚  β””β”€β”€β”€β”˜   β””β”€β”€β”€β”˜   β””β”€β”€β”€β”˜   β””β”€β”€β”€β”˜         β”‚
β”‚   kestrel agents (PID 1)                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Unified kernel boot:

  • Defaults to bzImage for maximum compatibility
  • Optional vmlinux override when needed
  • Both initramfs and rootfs can be supplied; the agent selects the boot path via volant.boot (auto | initramfs | rootfs)

Web UI and API

  • CORS: set VOLANT_CORS_ORIGINS="http://localhost:3000,https://app.example.com" to enable browser-based UIs
  • IP allowlist: VOLANT_API_ALLOW_CIDR="127.0.0.1/32,192.168.0.0/16"
  • API key: VOLANT_API_KEY=... then send header X-Volant-API-Key: <key>
  • System summary: GET /api/v1/system/summary
  • VM list with filters/pagination: GET /api/v1/vms?status=running&runtime=browser&plugin=caddy&q=web&limit=20&offset=0&sort=created_at&order=desc (returns X-Total-Count)
  • Console WebSocket: GET ws://<host>/ws/v1/vms/:name/console (raw serial bridge)
  • Plugin artifacts API:
    • List: GET /api/v1/plugins/:plugin/artifacts?version=v1
    • Upsert: POST /api/v1/plugins/:plugin/artifacts
    • Delete: DELETE /api/v1/plugins/:plugin/artifacts?version=v1

VM-level device overrides (VFIO):

{
  "devices": {
    "vfio": ["0000:01:00.0", "0000:01:00.1"]
  }
}

Apply with PATCH /api/v1/vms/:name/config or via volar config patching.


Use Cases

  • Secure multi-tenancy β€” True hardware isolation
  • Edge computing β€” Minimal footprint, fast boot
  • CI/CD β€” Ephemeral test environments
  • Development β€” Local Kubernetes-style orchestration
  • High-density workloads β€” 50-100 VMs per host
  • AI/ML Run machine learning workloads in isolation

Documentation

Full documentation: docs.volantvm.com

Quick links:


Roadmap

See ROADMAP.md for the full vision.

2025 Q3-Q4: VFIO GPU passthrough β€” Native GPU support for AI/ML workloads

  • 2025 Q4: PaaS mode β€” serverless-like workloads, boot from snapshot
  • 2025 Q4: Multi-node clustering support

Community

Contributing: See contributing


License

Business Source License 1.1 β€” free for personal, educational, and internal use. Commercial hosting or resale requires a license from HYPR PTE. LTD. Converts to Apache 2.0 on October 4, 2029.

See LICENSE for full terms.


Volant β€” Designed for stealth, speed, and scale.


Β© 2025 HYPR PTE. LTD.