Skip to main content

Install and quick start

Build Zorvia, deploy it with Helm, create a first VM and reach the web console.

Back to the README ยท Docs index

Installโ€‹

One binary, one Helm chart โ€” bring your own KubeVirt cluster.

git clone https://github.com/zyvorai/zorvia.git
cd zorvia
cargo install --path . --features web # `web` is the default feature
# or: cargo build --release --features web โ†’ target/release/zorvia

Requires Rust 1.89+, a kubeconfig, and a cluster with KubeVirt (CDI optional for golden images / CDI clone).

Helm (cluster install):

helm upgrade --install zorvia charts/zorvia -n zorvia-system --create-namespace \
-f charts/zorvia/values-lab.yaml

Production values: charts/zorvia/values-production.yaml. Lab remote deploy: docs/LAB.md.


Quick startโ€‹

Profile โ†’ create โ†’ start โ†’ reach the guest. Five commands, one real VM.

# Size from a profile, then create
zorvia profile show database
zorvia vm create prod-db \
--template ubuntu-22.04 \
--cpus 6 --memory 16Gi --disk-size 200Gi
zorvia vm start prod-db
zorvia guest wait-ready prod-db --timeout 120
zorvia guest guest-insight prod-db
zorvia vm status # platform components + features
zorvia vm status prod-db --watch

Multi-VM stack:

zorvia blueprint blueprints
zorvia blueprint deploy lamp --prefix myapp --start
zorvia vm list

Web console (HTTPS NodePort 30152, self-signed โ€” use curl -sk):

./scripts/deploy-remote.sh <host> sus --quick
# or: make deploy-remote H=<host> U=sus ARGS=--quick
open https://<HOST>:30152/app
PortRole
30152Cluster front door (UI + API)
5151In-pod listen / zorvia api api-serve --tls --port 5151
8080Config-file default when --port is omitted
# Health + login + list VMs
curl -sk https://HOST:30152/api/v1/health | jq .
TOKEN=$(curl -sk -X POST https://HOST:30152/api/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"โ€ฆ"}' | jq -r .token)
curl -sk -H "Authorization: Bearer $TOKEN" https://HOST:30152/api/vms | jq .
curl -sk -H "Authorization: Bearer $TOKEN" \
'https://HOST:30152/api/audit/export?format=jsonl' | head

Lab admin password comes from the zorvia-auth Secret (printed once on first deploy) โ€” see docs/LAB.md. Change credentials before anything shared.