AlphaLab · open source

Pertisk VMs

QEMU/KVM control plane — API, CLI, and UI.

Pertisk VMs is a Proxmox-style control plane without SSH for day-to-day work. Operators use REST /v1, the pertisk CLI, or the React UI to create guests, clone cloud templates, import ISOs, join a quorum cluster, and export inventory as Terraform HCL. Guests get in-browser SSH, snapshots, backups, and task history. Cluster HA can be disarmed for maintenance and nodes drained with restart-migrate. Linux defaults to QEMU + OVMF so Pertisk KOS UEFI cloud images boot; macOS stays on a mock driver. Production HA needs Ceph RBD — replica file copies are lab-only. KOS mgmt registers the daemon as kind pertisk-vms.

Pertisk VMs redesigned datacenter overview with live CPU, memory, and network charts

Highlights

  • HTTP API + web UI + CLI — no SSH for VM ops
  • Cloud templates, clone + cloud-init, live metrics charts
  • Guest SSH, snapshots, backups, and Terraform HCL export
  • HA disarm / drain, node updates, apt repos, host shell

Stack

  • Rust
  • QEMU / OVMF
  • Cloud Hypervisor
  • Axum
  • React UI

Management UI

Hash routes on the live demo. Roles: viewer (read), operator (mutate), admin (users).

Login

/#/login

Username/password, stay signed in.

  • Sign in

Overview

/#/dc/summary

Guests live, nodes, quorum, volumes, live charts.

  • Create guest
  • Open a guest

Templates

/#/dc/templates

Cloud images used as clone sources.

  • Import image
  • From volume
  • Clone
  • Destroy

Storage

/#/dc/storage

Replica volumes, ISO import, cloud-init seed ISOs.

  • Create volume
  • Import ISO
  • Cloud-init

Networks

/#/dc/networks

NAT or bridged networks (vmbr0 / br0).

  • Create network

Cluster

/#/dc/cluster

Members, generation, quorum, HA armed/disarmed, RBD warning.

  • Join cluster
  • Disarm HA
  • Drain this node
  • Leave

Settings

/#/dc/settings

Node name and SMTP notifications for guest/node events.

  • Save

Terraform

/#/dc/terraform

Provider HCL, template clone example, inventory snapshot.

  • Copy
  • Download main.tf

Node summary

/#/node/:id/summary

Host status, addresses, live metrics.

  • Refresh

Node updates

/#/node/:id/updates

apt refresh / dist-upgrade on the hypervisor.

  • Refresh
  • Upgrade

Node shell

/#/node/:id/shell

Root terminal on this hypervisor.

  • Type in the shell

Guest SSH

/#/vm/:id/ssh

In-browser SSH to a running guest.

  • Open SSH
  • Popup window

Snapshots

/#/vm/:id/snapshots

Named disk snapshots across guest volumes.

  • Take snapshot
  • Rollback
  • Delete

Backup

/#/vm/:id/backup

Stopped-guest backups stored on the node.

  • Backup now
  • Delete

Users

/#/dc/users

Local accounts: admin, operator, viewer.

  • Create user

Clone

git clone https://github.com/pertisktech/pertisk-vms.git