ConceptsDevelopment Preview
Architecture
The services#
A React and TypeScript web console talks to a Go API. The privileged work is split into narrow, separate processes:
| Service | Role |
|---|---|
| api | The HTTP API, with local-admin authentication, server-side sessions and CSRF protection; runs non-root |
| agent | A read-only libvirt agent |
| mutation-supervisor / mutation-helper | The only path that changes the host, over a closed protocol that carries names, never paths or XML; the helper is short-lived |
| console-broker | Brokers the serial and graphical consoles |
| offsite | Off-host backup copies |
| svavyom-ctl | The operator tool: install, upgrade, bridge, diagnostics |
Layers beneath#
The services drive libvirt (qemu:///system), which manages QEMU virtual machine processes accelerated by KVM in the Linux kernel. Svavyom builds on these layers rather than inventing a hypervisor.
The API contract#
The HTTP API is described in contracts/openapi.yaml (Apache-2.0). Separate programs that talk to Svavyom through its documented API are not part of it and may use any licence.