synvirt (hypervisor · Rust/KVM)
Synced read-only from
/home/synnet/mirrors/synvirt-product/README.md. Edit at the source, not here.
SynVirt
Section titled “SynVirt” __ ___ __ _______ ____ _ ____ \ \ / (_)_ __/ /_/ __/\ \/ / \| |/ / \ \ V /| | '_/ __/\__ \ \ /| . ` /| . | \_/ |_|_| \__/____/ / \|_|\_|_/ |__/ /_/Hypervisor infrastructure for the modern SMB
0.15.0 | Rust 1.95 | Debian 13 | HTTPS
SynVirt is a commercial hypervisor platform built for small and medium businesses and managed service providers across Mexico and Latin America. It offers a console-first operational model, a fully open-source technology stack that operators can audit end-to-end, tiered licensing by CPU socket, and a control plane written entirely in Rust.
Developed by SYNNET — Culiacán, México.
Quick Start
Section titled “Quick Start”# 1. Internal, local-only repository (no public remote).# On the dev host it already lives at /home/synvirt/dev.cd /home/synvirt/dev
# 2. Start the development daemon on a Debian 13 hostcargo run -p synvirt-daemon -- --dev
# 3. Open the web interface# https://localhost:8443# (Accept the self-signed certificate warning in your browser)Architecture
Section titled “Architecture”SynVirt supports three operational modes that grow with your infrastructure:
+------------------+ +-----------------------------+ +----------------------------------------+| STANDALONE | | TWIN | | CLUSTER || | | | | || +-----------+ | | +-------+ +-------+ | | +-------+ +-------+ +-------+ || | Node 01 | | | | Node | | Node | | | | Node | | Node | | Node | || | (primary) | | | | 01 | | 02 | | | | 01 | | 02 | | 03 | || | | | | | | | | | | | | | | | ... | || | daemon | | | | daemon| | daemon| | | | daemon| | daemon| | daemon| || | KVM | | | | KVM | | KVM | | | | KVM | | KVM | | KVM | || | ZFS | | | | DRBD | | DRBD | | | | DRBD | | DRBD | | DRBD | || +-----------+ | | +---+---+ +---+---+ | | +---+---+ +---+---+ +---+---+ || | | | | | | | \ | / | || 1 node | | +---+-----------+---+ | | +---+-----\--+--/--------+---+ || No HA | | | Witness Node | | | | etcd Raft quorum | || Local storage | | +-------------------+ | | +---------------------------+ || | | | | || Dev / test | | 2 nodes + witness | | 3+ nodes, distributed scheduling || Single-site SMB | | Synchronous DRBD repl. | | Full HA, live migration |+------------------+ +-----------------------------+ +----------------------------------------+
Upgrade path: Standalone --> Twin --> Cluster (non-destructive)Control Plane Stack
Section titled “Control Plane Stack”+--------------------------------------------------------------+| synvirt-daemon || (single Rust binary) |+--------------------------------------------------------------+| Axum (HTTP router) | Rustls (TLS) | Tokio (async rt) |+--------------------------------------------------------------+| Embedded web server on :443 (prod) / :8443 (dev) |+--------------------------------------------------------------+| Static assets: /opt/synvirt/web/ (or ./web/ in dev mode) |+--------------------------------------------------------------+Modules
Section titled “Modules”The repo is a Cargo workspace. The tables below mirror the crate layout
under crates/ and the top-level iso-builder/ pipeline.
Core platform
Section titled “Core platform”| Crate | Purpose |
|---|---|
daemon |
Control-plane HTTPS API (axum, TLS). The single entry point for operators. |
synvirt-libvirt |
libvirt / KVM wrapper (virsh subprocess + XML renderer). |
console-gateway |
WebSocket ↔ TCP-socket bridge proxying VNC, with HS256 JWT tickets. |
guest-tools-iso |
Builder for the pinned virtio-win + SynVirt guest-tools ISO. |
web-ux-v2 |
Canonical Vue 3.5 + TS + Vite + Pinia dashboard, mounted at /. |
web-ux |
Legacy Vue 3 / Pinia / Tailwind dashboard (vendored), off-ramp at /legacy/. |
web-installer-v2 |
Canonical Vue 3.5 + TS pre-install wizard. |
web-installer |
Legacy hand-rolled pre-install browser wizard (off-ramp). |
live |
Live-ISO TUI (boot-time installer front-end). |
console |
Post-install 23-screen admin TUI on tty1. |
boot-splash |
12-step boot-progress TUI on tty1 with recovery screen. |
tui-theme |
Shared ratatui palette + layout helpers. |
cli |
Operator CLI binary (synvirt-cli). |
agent |
Placeholder for the future per-host node agent (synvirt-node-agent). |
migrator |
VM import engine: live pull from external hypervisors + offline archive/disk import. |
core |
Cross-cutting types shared by every crate above. |
This is a curated subset. The data-plane services (
synvirt-network,synvirt-storaged,synvirt-migratord,synvirt-updaterd,synvirt-livemotiond,synvirt-backupd), the Settings-module crates,synvirt-cluster,synvirt-backup-core, and the WebRTC console crates are omitted here — see CLAUDE.md §2 for the full 48-crate workspace.
Guest Tools Suite
Section titled “Guest Tools Suite”| Crate | Status | Purpose |
|---|---|---|
synvirt-guest-proto |
Implemented | Portable JSON-lines protocol types (hello / heartbeat / report / command / ack / error). No I/O, no tokio, compiles for Linux / BSD / Windows 64 / Windows 32 (XP/2003). |
synvirt-guest-tools |
Implemented | Host-side supervisor: per-VM connector tasks, VmToolsState in sled, AgentEvent broadcast. Integrated into daemon. |
synvirt-guest-agent |
Implemented | Rust agent for Windows 7+ / Linux 3.10+ / FreeBSD 12+. Binary + systemd/rc.d/SCM service + command handlers. Packaged as .deb, .rpm, FreeBSD pkg, Windows .exe. |
synvirt-guest-agent-legacy |
Implemented | C agent for Windows XP / Server 2003 (i686). |
synvirt-guest-installer |
Implemented | .NET 8 WinForms self-contained EXE (SynVirt-Setup.exe) with dark theme, rollback stack, silent CLI mode. |
synvirt-guest-installer-rs |
Implemented | Rust shim that builds the .NET installer and stages its embedded payloads. |
Protocol spec: docs/GUEST_AGENT_PROTOCOL.md.
Development
Section titled “Development”Prerequisites
Section titled “Prerequisites”| Tool | Version | Notes |
|---|---|---|
| Debian | 13 Trixie | Same distro as the shipping live-ISO runtime. |
| Rust | 1.95 (stable, pinned in rust-toolchain.toml) |
Installed via rustup on the dev host. |
| cargo, gcc, pkg-config | latest | From the Debian 13 package set. |
| QEMU / libvirt / OVS / ZFS | whatever Debian 13 ships | Required for local VM smoke-tests; TCG fallback when /dev/kvm is absent. |
| sshpass | latest | For scripts/deploy-to-host.sh hot iteration to the appliance. |
Building the Daemon
Section titled “Building the Daemon”# From the repository root on the Debian 13 dev hostcargo build -p synvirt-daemonRunning in Development Mode
Section titled “Running in Development Mode”cargo run -p synvirt-daemon -- --devThe --dev flag activates:
- Port 8443 instead of 443
- Pretty (human-readable) log output
- Static assets served from
./web/relative to the binary
Environment Variables
Section titled “Environment Variables”| Variable | Default | Description |
|---|---|---|
SYNVIRT_DEV |
unset | Enable dev mode (same as --dev) |
SYNVIRT_PORT |
443 / 8443 | Override listen port |
SYNVIRT_LOG |
info | Log level (trace/debug/info/warn/error) |
Building the ISO
Section titled “Building the ISO”The ISO builder generates a Debian 13 Trixie minimal image (kernel 6.12 LTS)
on top of live-build. The result boots into a wizard-driven unattended
installer that configures the base OS (including the ZFS layout) and
hands off to the synvirt-daemon running from RAM.
cd iso-builder./build.shOutput: iso-builder/output/SynVirt-<VERSION>-amd64.iso
Typical build times:
- First build or after
FORCE_REBUILD=1: 30–45 min (bootstrap + chroot). - Incremental: 2–5 min (live-build cache hit).
Iterating against a running appliance
Section titled “Iterating against a running appliance”scripts/deploy-to-host.sh hot-swaps the daemon + dashboard onto a
running SynVirt node without rebuilding the ISO:
SSHPASS=<password> HOST=<ip> ./scripts/deploy-to-host.sh hotStages: inspect, build, push, apply, web-ux, reboot,
verify, all. The hot shortcut runs build + push + apply + web-ux
for fast dashboard iteration.
Documentation
Section titled “Documentation”| Document | Description |
|---|---|
| docs/architecture.md | System architecture, modes, daemon design, tech stack |
| docs/build.md | Detailed build and dev environment guide |
| docs/roadmap.md | Phase roadmap from MVP to Enterprise |
| docs/decisions/ | Architecture Decision Records (ADRs) |
License
Section titled “License”Proprietary — All rights reserved — SYNNET 2026
This software is proprietary and confidential. Unauthorized copying, distribution, or use is strictly prohibited.
See LICENSE for full terms.