A modern web console for managing KubeVirt virtual machines and Kube-OVN network resources.
-
Compute Management
- Virtual Machine lifecycle (create, start, stop, delete)
- VM monitoring and status
-
Storage Management
- Block Storage (DataVolumes)
- Volume Snapshots
- Filesystem (PVCs)
-
Network Management
- VPC management
- Elastic IP (EIP)
- NAT rules (SNAT/DNAT)
- Load Balancers
-
Multi-language Support
- English
- 中文 (Chinese)
-
Dark/Light Theme
- Node.js 18+
- Access to a Kubernetes cluster with:
- KubeVirt installed
- Kube-OVN installed
- CDI (Containerized Data Importer)
- Valid kubeconfig file (
~/.kube/config)
npm installStart both the backend server and frontend dev server:
npm run devThis will start:
- Backend API server on
http://localhost:3000 - Frontend dev server on
http://localhost:5173
npm run build
npm startvirtui/
├── server/ # Backend (Hono)
│ ├── index.ts # Server entry point
│ ├── k8s/
│ │ └── client.ts # Kubernetes client wrapper
│ └── routes/
│ ├── compute.ts # VM management APIs
│ ├── storage.ts # Storage management APIs
│ └── network.ts # Network management APIs
├── src/ # Frontend (React)
│ ├── components/ # Reusable components
│ ├── pages/ # Page components
│ ├── store/ # Zustand state management
│ └── i18n/ # Internationalization
└── public/ # Static assets
GET /api/namespaces- List all namespaces
GET /api/compute/vms- List virtual machinesPOST /api/compute/vms- Create virtual machineDELETE /api/compute/vms/:name- Delete virtual machinePOST /api/compute/vms/:name/start- Start VMPOST /api/compute/vms/:name/stop- Stop VM
GET /api/storage/datavolumes- List DataVolumesPOST /api/storage/datavolumes- Create DataVolumeDELETE /api/storage/datavolumes/:name- Delete DataVolumeGET /api/storage/snapshots- List VolumeSnapshotsPOST /api/storage/snapshots- Create VolumeSnapshotDELETE /api/storage/snapshots/:name- Delete VolumeSnapshotGET /api/storage/filesystems- List PVCsPOST /api/storage/filesystems- Create PVCDELETE /api/storage/filesystems/:name- Delete PVC
GET /api/network/vpcs- List VPCsPOST /api/network/vpcs- Create VPCDELETE /api/network/vpcs/:name- Delete VPCGET /api/network/eips- List EIPsPOST /api/network/eips- Create EIPDELETE /api/network/eips/:name- Delete EIPGET /api/network/nat- List NAT rulesPOST /api/network/nat/snat- Create SNAT rulePOST /api/network/nat/dnat- Create DNAT ruleDELETE /api/network/nat/snat/:name- Delete SNAT ruleDELETE /api/network/nat/dnat/:name- Delete DNAT ruleGET /api/network/loadbalancers- List LoadBalancersPOST /api/network/loadbalancers- Create LoadBalancerDELETE /api/network/loadbalancers/:name- Delete LoadBalancer
MIT