Releases: Elgeryy1/hypergery
Release list
HyperGery v1.7.0
HyperGery v1.7.0
Gestor/hipervisor de escritorio para Ubuntu sobre KVM/QEMU/libvirt. Esta
versión se distribuye como paquete Debian (.deb) — no necesitas clonar el
código ni instalar nada con pip para usarla.
Instalación (recomendada: .deb)
Descarga hypergery_1.7.0_all.deb desde la página de Releases e instálalo:
sudo apt install -y ./hypergery_1.7.0_all.debapt resuelve las dependencias (PySide6, etc.). Para arrancar: hypergery
(o desde el menú de aplicaciones). El agente multi-host se habilita solo por
sesión de usuario. Desinstalar (sudo apt remove hypergery) no borra tus
datos (~/.config/hypergery, ~/.local/share/hypergery).
Requisitos del host (los instala apt como recomendados o ya los tienes):
qemu-system-x86, libvirt-daemon-system, libvirt-clients, virt-viewer,
qemu-utils, ovmf. El usuario debe estar en los grupos kvm y libvirt.
Novedades desde v1.0.1 (último release público)
Las versiones v1.1–v1.6 se desarrollaron pero nunca se publicaron como release;
este v1.7.0 es el primer release desde v1.0.1, así que si vienes de v1.0.1 lo
recibes todo de golpe. Resumen acumulado por versión:
- v1.1 — App instalable + robustez: identidad de app y empaquetado
.deb,
JobManager (cierre sin colgarse), Hub robusto (WAL/busy_timeout, TTL de comandos,
límite de upload), redes coherentes con libvirt, suiteneedsRealLibvirt. - v1.2 — Seguridad Hub/API: token bearer obligatorio (ficheros
0600,
rate-limit), RBAC aplicado en el API, pairing, tokens por usuario. - v1.3 — Backups y plantillas: políticas de backup al NAS con retención,
Backup Verifier (restaura y arranca para validar), snapshot branching, tags
y presupuestos por lab. - v1.4 — Orquestación y telemetría: telemetría en cada heartbeat, orchestrator
aplicable con confirmación,GET /dashboard, API companion (acciones seguras). - v1.5 — Live migration en caliente (detalle abajo).
- v1.6 — App Android nativa (detalle abajo).
- v1.7 — GPU/3D + consola remota (detalle abajo).
Novedades destacadas de v1.7 (y de los hitos no publicados)
Aceleración 3D compartida (VirGL)
GPU virtio con accel3d + egl-headless: el guest obtiene 3D acelerado por la
GPU del host sin GPU passthrough, sin segunda GPU y sin reinicios. Es la vía
recomendada para 3D. Validado en hardware real (Intel UHD 620): el guest negocia
+virgl de extremo a extremo.
GPU passthrough (VFIO/PCI)
Detección de GPUs y grupos IOMMU, preflight con parada dura (rechaza la GPU
del escritorio si no hay segunda GPU), bind a vfio-pci con rollback, <hostdev>
en el XML, anti-Code-43 para NVIDIA. Los cambios de host (GRUB/initramfs) solo se
proponen, nunca se aplican solos.
Live migration en caliente (RAM+CPU)
Migración en vivo sobre virsh migrate (pre-copy, auto-converge, postcopy
opcional, block migration sin almacenamiento compartido, downtime medido, abort
con origen intacto, nunca activa en dos hosts). Validado en hardware real con
la prueba de fuego: un Ubuntu Server con nginx + PostgreSQL + Redis migrado
AMD→Intel mientras servía tráfico — 0 peticiones HTTP perdidas de 1060,
switchover de ~0,23 s, mismo boot_id (no se reinició), datos intactos.
Migración entre fabricantes (AMD↔Intel): posible con un perfil de CPU de
compatibilidad (qemu64ocultandosvm/vmx). Con CPUhost-passthroughel
preflight bloquea el cruce de fabricante (correcto). Una VM con GPU passthrough o
VirGL no es live-migrable: el preflight lo bloquea y se mueve apagada por el Hub.
Consola remota integrada
La consola propia de HyperGery ahora abre VMs de otros equipos: tuneliza el
VNC del host remoto por SSH (ssh -L) y la pinta como si fuera local. Antes solo
había consola para VMs locales.
App Android nativa
Cliente Kotlin/Compose contra el API seguro (token + TLS por VPN/WireGuard):
pairing seguro, inventario, dashboard con progreso en vivo y acciones seguras
(start / ACPI shutdown / snapshot con confirmación).
Correcciones de teclado en la consola integrada
- Ctrl+letra (Ctrl+C, Ctrl+D, Ctrl+Z…) ahora llega al guest — antes se perdía
la letra y no podías, p. ej., salir detop. - AltGr (ISO_Level3_Shift) se envía al guest → los caracteres de tercer nivel
(| @ # ~ \) salen bien. - El keymap del VNC se fija automáticamente al layout del host, de modo que
los símbolos de teclados no-US se mapean correctamente (el keymap debe coincidir
con el layout del guest; override conHYPERGERY_VNC_KEYMAP).
Corrección de migración
- Block migration ahora fija
--migrateuri tcp://<host>para que el canal de
datos/NBD use una dirección alcanzable, evitando el erroraddress resolution failed for <hostname>cuando el origen no resuelve el hostname del destino por
DNS.
Seguridad (recordatorio)
El Hub y el API son solo LAN/VPN: usan token bearer obligatorio (ficheros
0600, rate-limit), pero no expongas el Hub a Internet sin TLS/VPN. Conexiones
entre equipos solo por canales legítimos (SSH, WireGuard, Tailscale, HTTPS/TLS).
Estado de pruebas
pytest: 993 passed, 8 skipped (skips = suiteneedsRealLibvirty real-only).- UAT real multi-host (AMD Ryzen 7 7700X ↔ Intel i5-8250U): VirGL 3D, live
migration en caliente cross-vendor (bidireccional), migración offline y control
remoto vía Hub — todo PASS. Detalle en
docs/qa/REAL_MULTIHOST_UAT_2026-06-14.md.
Limitaciones honestas
- Migración cross-vendor solo con perfil de CPU de compatibilidad (sin virtualización
anidada en esas VMs). - Sin live-RAM con motor propio (HG-MEMDIFF sigue siendo investigación).
- Consola remota: VNC sobre túnel SSH (requiere
sshy acceso al host remoto). - App Android: requiere desplegar el API con TLS/VPN; no exponer el Hub a Internet.
HyperGery v1.0.1
HyperGery v1.0.1 — Release Notes
Estado: release estable (bugfix / migration safety). Corrección sobre v1.0.0
centrada en la seguridad de la migración y la higiene del repositorio. Sin
features nuevas; sin cambios de live migration (sigue planificada para v1.5).
- Versión: 1.0.1 (
pyproject.toml,hypergery_ubuntu/__init__.pyy
ui_qt/styles.pyen1.0.1; la UI muestrav1.0.1). - Fecha: 2026-06-09
- Origen: rama
fix/v1.0.1-migration-safety, integrada enmainy etiquetadav1.0.1. - Tipo: bugfix release (migration safety + repo hygiene + security docs).
Resumen ejecutivo
v1.0.1 cierra cinco hallazgos de la auditoría post-release de v1.0.0
(docs/audit/). El foco es no perder ni dejar a medias una VM durante una
migración/teleport y decir la verdad sobre lo que se migra:
- Un fallo a mitad del state export ya no deja la VM de origen apagada: se
reanuda desde su estado guardado y se limpia el paquete parcial. - Los paquetes de estado llevan checksums y se verifica su integridad.
- Los snapshots dejan de "viajar para luego descartarse": v1.0.1 avisa
explícitamente que no se migran, sin pérdida silenciosa. - Higiene del repo (
.gitignore) y avisos de seguridad LAN reforzados para el
Hub/API sin autenticación.
Validado con tests automáticos y un UAT real en host KVM (gerard-MS-7E26):
5/5 PASS.
Bugs cerrados
HG-BUG-0002 — Rollback seguro en state export (High, blocker)
v1/state_migration.export_vm_state_package congelaba la VM con save_vm() y, si
una copia de disco fallaba después, dejaba la VM de origen apagada con un paquete
a medias y sin reanudarla. Ahora todo lo posterior a save_vm() está envuelto en
recuperación: ante fallo se reanuda el origen desde su estado guardado y se
borra el paquete parcial; si la reanudación también falla, se conserva
memory-state.save y se lanza un error claro con el comando virsh restore para
recuperación manual.
HG-BUG-0007 — Integridad/checksums del paquete de estado (Medium)
validate_state_package solo comprobaba existencia. Ahora el manifest lleva
sha256+size de domain.xml, discos y (cuando es legible) memory-state.save,
y la validación detecta truncamiento/corrupción. Compatibilidad: los paquetes
anteriores (sin checksums) siguen validando por existencia.
HG-BUG-0003 — Snapshots: comportamiento explícito, no migrados en v1.0.1 (High, blocker)
Antes los snapshots se empaquetaban y verificaban pero el importador los
descartaba (pérdida silenciosa). Ahora no se empaquetan, se conserva su
metadata para visibilidad, el manifest marca snapshots_migrated=false y se
avisa explícitamente en el preflight y en el resultado del import
("Snapshots are NOT migrated in v1.0.1").
HG-BUG-0004 — Higiene de repositorio (High, hygiene)
.gitignore ahora cubre .claude/, *.exe y capturas virtualbox/, y se retiró
el instalador ajeno Claude-Setup-x64.exe (126 MB) del working tree para evitar
commits accidentales.
HG-BUG-0001 — Avisos de seguridad LAN/Hub (mitigación + docs)
README y SECURITY.md dejan claro que el Hub/API no tienen autenticación ni TLS
en la línea v1.0.x: usar solo en LAN de confianza, bind 127.0.0.1 por
defecto, no exponer a Internet. La autenticación por token + TLS sigue
planificada para v1.2 (no implementada aquí).
Resultados QA
python -m compileall hypergery_ubuntu→ OK- Focused:
pytest tests/test_v1_state_migration.py tests/test_migration.py tests/test_registry.py tests/test_cli.py -q→ 95 passed - Suite completa:
pytest -q→ 668 passed (661 base + 7 nuevos), 0 fallos, 0 skips - UAT real 5/5 PASS en host KVM
gerard-MS-7E26(qemu:///system):
ver docs/qa/V1_0_1_UAT_RESULT.md.virsh save→ fallo de copia inducido →virsh restore→ VM volvió a ejecutando.- Paquete parcial eliminado.
- Disco truncado detectado por
Size mismatch. memory-state.saveconfirmadoroot:root 0600→ checksum del RAM-state best-effort.snapshots_migrated=false+ warning "NOT migrated in v1.0.1"..gitignorey README/SECURITY verificados.
Known limitations
- Hub/API sin autenticación fuerte hasta v1.2 (token + TLS). Usar solo en
LAN de confianza; no exponer a Internet. - Live migration (RAM en caliente / downtime mínimo) queda fuera de v1.0.1
y va a v1.5. memory-state.saveroot-owned enqemu:///system: el checksum del RAM-state
es best-effort cuando el fichero no es legible por el usuario de sesión
(libvirt, como root, sí lo restaura). Comportamiento intencional y documentado.- Snapshots no se migran en v1.0.1: se avisa explícitamente; conserva el origen
hasta confirmar que no los necesitas. - Otros hallazgos del audit (concurrencia SQLite del Hub,
closeEventQt, redes del
Centro de control, tests de libvirt real) quedan para v1.1.
Upgrade notes (desde v1.0.0)
- Actualización drop-in: no hay cambios de esquema ni de datos. Reinstala el
paquete editable o hazgit pully vuelve a lanzar la app. - Los paquetes de migración/estado existentes siguen siendo válidos (los de
estado sin checksums validan por existencia; los nuevos llevan checksums). - Si dependías de que los snapshots viajaran en la migración: no lo hacían (se
descartaban en destino). A partir de v1.0.1 se te avisa explícitamente; conserva
la VM de origen hasta validar el destino. - Si exponías el Hub más allá de loopback, revisa los avisos de seguridad: hazlo
solo dentro de una LAN de confianza.
Próximos pasos
- v1.1 — robustez/refactor: robustez del Hub (
busy_timeout/WAL SQLite, TTL de
comandos, límites de upload),closeEventQt con cancelación de jobs, redes del
Centro de control alineadas con libvirt real, suite de testsneedsRealLibvirt,
e inicio del refactor demain_window.py. - v1.5 — live migration: migración con estado de RAM en caliente y downtime
mínimo, con máquina de estados de migración (preflight/transfer/switchover/
rollback) y progreso uniforme Hub↔agente↔UI.
HyperGery v1.0.0
HyperGery v1.0.0 — Release Notes
Estado: release estable. Primera versión final de HyperGery. Promovida desde la
candidatev1.0-rc1tras el trabajo defeature/v1.1-uxy el UAT final aprobado.
- Versión: 1.0.0 (
pyproject.tomlyhypergery_ubuntu/__init__.pyen1.0.0;
UI muestrav1.0.0). Promovida desde la candidate1.0.0rc1. - Fecha: 2026-06-09
- Origen: rama
feature/v1.1-ux, integrada enmainy etiquetadav1.0.0.
Resumen ejecutivo
HyperGery v1.0 es la primera versión estable de un gestor de máquinas virtuales para Ubuntu
sobre KVM/libvirt, con una experiencia de usuario al estilo VirtualBox, completamente en
español y humanizada. Permite gestionar VMs locales y, a través de un Hub con NAS y agentes,
trabajar con varios equipos del laboratorio y migrar máquinas de forma segura y verificable
entre hosts, sin perder el original y regenerando identidad (UUID/MAC) en el destino.
Esta versión se centra en una base sólida, segura y verificable: la migración es de tipo
copia-y-verifica (no en caliente), pensada para entornos de laboratorio en LAN de confianza.
La migración en vivo queda planificada para v1.5.
¿Qué es HyperGery v1.0?
Una aplicación de escritorio (PySide6/Qt) que actúa como panel único para:
- Crear, configurar y operar VMs KVM/libvirt en el equipo local.
- Ver el estado del laboratorio (Hub/NAS y otros equipos) de un vistazo.
- Mover VMs entre hosts del laboratorio de forma controlada.
- Abrir consola VNC integrada, gestionar laboratorios aislados y diagnosticar el sistema.
Highlights
- Gestor de VMs estilo VirtualBox para Ubuntu/KVM/libvirt (no un dashboard web).
- UI en español y humanizada: botones, estados (Encendida / Apagada / Pausada) y mensajes
de error legibles; sin JSON crudo ni literales técnicos (RUNNING, shut off, DEFAULT…). - Layout VM-first: árbol de VMs a la izquierda, panel de detalles en el centro
(General/Sistema/Pantalla/Almacenamiento/Audio/Red/USB) y previsualización a la derecha. - Hub / NAS / agentes: visión del laboratorio, equipos en línea y zona NAS para staging.
- Migración segura entre hosts: el origen permanece intacto; el destino se crea en el host
correcto con UUID/MAC regenerados, disco verificado y arranque comprobado; staging del Hub
limpio y sin tareas colgadas. - Consola VNC integrada, ejecutada fuera del hilo de UI (sin congelación).
- Laboratorios aislados para experimentar sin invadir la pantalla principal.
- Centro de control sin JSON crudo: datos del equipo, batería, copias en el NAS, redes,
usuarios e historial presentados como tarjetas, con acceso opcional a «detalles técnicos». - Tests y UAT aprobados (ver QA abajo).
Resultados de QA
| Verificación | Resultado |
|---|---|
python -m compileall hypergery_ubuntu |
OK (exit 0) |
Tests Qt focalizados (test_qt_ui, test_qt_v1_render, test_qt_iso_validation) |
128 passed |
Suite completa (pytest -q) |
661 passed, 0 skipped |
| UAT visual (pantalla principal, selección de VM, vistas secundarias, errores) | PASS |
| UAT migración (segura/verificable, host real) | PASS |
- Entorno verificado: Python 3.14.4 · PySide6 6.11.1 · pytest 9.0.3.
- Evidencias visuales:
docs/qa/evidence/v1-final/(5 capturas). - Detalle del UAT:
docs/qa/V1_FINAL_UAT_RESULT.md.
Known issues
- Centro de control → Redes: muestra un error relacionado con DHCP/CIDR/Duplicate Gateway.
No afecta al flujo principal de gestión/migración. Aceptado como known issue de v1.0. - Hub/API sin autenticación fuerte: usar únicamente en LAN de confianza. El
endurecimiento de la autenticación queda para una versión posterior. - Live migration fuera de v1.0: la migración de v1.0 es segura/verificable (no en caliente).
La migración en vivo está planificada para v1.5 (verdocs/roadmap/V1_5_LIVE_MIGRATION.md).
Instalación / upgrade
Requisitos del host: Ubuntu con KVM/libvirt operativos, acceso a qemu:///system y permisos
del usuario en el grupo libvirt. Para la UI se necesita PySide6.
Instalación en entorno virtual (recomendado):
python -m venv ~/.venvs/hypergery
source ~/.venvs/hypergery/bin/activate
pip install -e hypergery-ubuntuEjecución de la app:
QT_QPA_PLATFORM=xcb ~/.venvs/hypergery/bin/hypergeryNotas de upgrade desde release candidate (1.0.0rc1):
- La versión ya está fijada en
1.0.0(pyproject.tomlyhypergery_ubuntu/__init__.py); la UI
muestrav1.0.0(antesv1.1-devdurante el desarrollo). - No hay migración de estado destructiva conocida; el estado v1 se migra de forma compatible
(cubierto portests/test_v1_state_migration.py).
Seguridad y limitaciones
- Pensado para LAN de confianza: el Hub/API no implementa autenticación fuerte en v1.0.
No exponer el Hub a redes no confiables. - Migración no destructiva: el original nunca se toca; el destino regenera UUID/MAC.
- Rutas de paquetes de migración validadas: se rechazan rutas inseguras / path traversal
(fixd731440). - Operaciones potencialmente destructivas (apagar, eliminar, snapshots) requieren acción
explícita del usuario y no se ejecutan de forma automática. - La live migration no está disponible: no intentar migrar VMs encendidas esperando
continuidad de servicio en v1.0.
Próximos pasos
- v1.0.1 — polish y bugfix; resolver el known issue de Centro de control → Redes.
- v1.5 — live migration real (VM encendida, downtime mínimo). Roadmap:
docs/roadmap/V1_5_LIVE_MIGRATION.md. - Autenticación fuerte del Hub/API — endurecer el acceso más allá de la LAN de confianza.
- Refactor de
ui_qt/main_window.py— reducir deuda técnica conforme crece la UI.
HyperGery v0.7.0 — Visual Refresh & Hub Transfer
HyperGery v0.7.0 — Visual Refresh & Hub Transfer
HyperGery v0.7.0 modernizes the entire desktop experience and removes the
biggest operational requirement for VM migrations: hosts no longer need a
shared NAS mount — packages now travel through the Hub.
Highlights
- Modern UI refresh: new app shell with sidebar navigation and status top
bar, dashboard health cards, remote host cards, tabbed Settings with
ENV/CONFIG/DEFAULT source chips, Diagnostics (doctor) panel, and a polished
VM view and console window — all on a consistent dark design system. - Hub Transfer migrations:
--transfer hubuploads the migration package
through the Hub and the target downloads it. The temporary Hub copy is
deleted after a successful import. No shared mount, no identical paths. - NAS-hosted Hub: the reference deployment runs the Hub in Docker on the
NAS; the app's default Hub URL points at it, so fresh installs work with
zero configuration. - Migrations history: a read-only Migrations page listing every migration
recorded on the Hub, with status colors and copyable ID/summary. - Remote VM inventory: "View VMs" on a remote host card shows that host's
VMs (read-only) as reported by its agent. - Agent service installer:
scripts/install-agent-user-service.shsets up
the agent as a systemd --user service (no sudo, no stored credentials).
What changed
UI
- App shell: sidebar (Dashboard, Virtual Machines, Labs, Templates, Remote
Hosts, Migrations, Diagnostics, Settings) + top bar with Hub/Host/NAS chips. - Dashboard health cards, warnings, and last-migration summary.
- Remote Hosts: hub status card, per-host capability cards, host test action,
read-only remote VM inventory dialog. - Settings: sectioned dialog with config-source chips; honest "planned for
v0.8" callouts for not-yet-implemented sections. - Diagnostics: doctor checks grouped by area, run in a background worker,
copyable report. - NAS Clone Migration wizard: 6 steps (Select VM, Target Host, Options,
Preflight, Progress, Result) with progress states and automatic status
polling. - VM view: header with counters, 7-column table with state chips, Console
status card (Host Key: Right Ctrl). - Console window: grouped toolbar, status bar with display type/resolution,
clear disconnected/powered-off/SPICE states. Closing the console never
stops the VM. - Migrations history page (read-only; never deletes records or packages).
Hub / Agent
- Hub package staging endpoints:
PUT/GET /packages/<id>/<path>,
GET /packages/<id>(listing),DELETE /packages/<id>— streamed in 1 MiB
chunks with path-traversal protection. Staging dir configurable via
HYPERGERY_HUB_STAGING(Docker:/hypergery/staging). - Agent
import_vm_packagesupportstransfer: hub: download from the Hub,
validate checksums, import, then delete the local temp copy and the Hub
staging copy.
Migration
- New
--transfer hub|nasflag onmigrate remote; the UI wizard defaults to
Hub Transfer and no longer requires a NAS path in that mode. - Source VM and source disks remain untouched in both modes; target import
regenerates UUID and MAC and refuses existing target VM names.
Operations
- Default
hub_urlpoints at the NAS Hub;HYPERGERY_HUB_URLand
~/.config/hypergery/config.jsonstill override it. scripts/start-second-host.sh: one-command agent + app launcher for a
secondary host.scripts/install-agent-user-service.sh: systemd --user unit installer with
--hub-urland--uninstall; optionalloginctl enable-lingerhint for
headless hosts.
Docs / tests
- New
docs/QUICK_START_V07.md; Hub Transfer documented in
docs/NAS_LIVE_MIGRATION.mdanddocs/HYPERGERY_HUB.md; new
troubleshooting sections for Hub Transfer failures. - Test suite grew to 249 tests (Qt offscreen + system Python), including hub
staging roundtrip, hub-transfer migration flow, agent download/cleanup,
wizard transfer mode, migrations history, and script static checks.
Validation
- Full test suite green: 249 OK (venv Qt/offscreen) and 249 OK on system
Python (Qt tests skipped cleanly),compileall,bash -non all scripts,
docker compose config. - Real two-host Hub Transfer E2E migrations passed on physical hardware:
- small disk migration → done
- migration including a 2.8 GiB ISO → done
- migration with a ~5.8 GiB VM disk → done, target started after import
- In every run: source VM untouched, target imported with regenerated
UUID/MAC, Hub staging copy deleted after import, target temp directory
cleaned.
Not included
- True live RAM migration, HG-MEMDIFF, or any dirty-page transfer protocol.
- AutoBoost, Android Hub, IsardVDI, P2P transfer.
- Remote VM power control or remote console (remote inventory is read-only).
- SPICE integrated console (external viewer fallback remains).
- Lab-specific visual workspace and advanced Settings sections (planned v0.8).
Upgrade notes
- The default Hub URL changed from
http://127.0.0.1:8765to the NAS Hub
(http://192.168.1.150:8765).HYPERGERY_HUB_URLand the saved config
still override the default. - Use
scripts/install-agent-user-service.shto start the agent
automatically per user session. - Use
--transfer hub(or simply the wizard default) for migrations without
a shared mount;--transfer nas --nas-path <path>remains available as the
shared-NAS fallback. - A failed Hub Transfer migration keeps its staged package on the Hub for
inspection; remove it withDELETE /packages/<migration_id>once diagnosed.
HyperGery v0.6.0 — NAS Clone Migration
HyperGery v0.6.0 - NAS Clone Migration
HyperGery v0.6.0 is the NAS Clone Migration release. The UI action is named Live Migration, but this release intentionally ships the conservative NAS Clone Migration strategy: package the source VM on NAS storage, import it on the target host, regenerate target identity, and keep the source VM and original disks untouched.
Highlights
- HyperGery Hub Docker control plane for host registration, heartbeats, VM inventory, commands, migration state, events, and healthchecks.
- HyperGery Agent for safe host capability reporting and allowlisted command execution.
- Remote Hosts UI and CLI host discovery.
- NAS Clone Migration package export/import and remote orchestration through Hub/Agent.
- VM Console Window for VNC-backed guests, with external viewer fallback for SPICE.
- App Settings for Hub URL, host identity, NAS staging path, default display, default ISO folder, and default VM storage path.
- CLI
doctorfor non-destructive host, Hub, libvirt, KVM, NAS, Docker, and VM inventory diagnostics. - Docker Compose Hub deployment with persistent SQLite volume and NAS package bind mount.
Validation
- Two-host physical NAS Clone Migration smoke: passed.
- Source host:
hg-source. - Target host:
hg-target. - Hub:
http://192.168.1.44:8765. - Migration ID:
hg-v06-2host-source-f67154f7803b. - Package path:
/mnt/hypergery-nas/hypergery/migrations/hg-v06-2host-source-f67154f7803b. - Source VM remained intact: UUID
9ede2302-fabf-4b3a-a6c0-67bd20e217fb, MAC52:54:00:cb:ed:8f, disk present, VM shut off. - Target VM imported as
hg-v06-2host-target. - Target UUID regenerated:
113d0d29-1726-4a7e-a703-de84f81e2602. - Target MAC regenerated:
52:54:a5:a1:4e:be. - Target booted and reached
running. - Target cleanup completed for
hg-v06-2host-target; NAS package retained. - Final tests: 214 tests OK in the Qt/offscreen venv; 214 tests OK with 15 skipped on system Python;
compileall, shell syntax checks, anddocker compose configpassed.
Not Included
- True live RAM migration or HG-MEMDIFF/custom dirty-page transfer.
- AutoBoost.
- Android Hub.
- IsardVDI.
- SPICE integrated console.
HyperGery v0.5.0
HyperGery v0.5.0 adds Lab Topology & UX: visual lab topology with VM status nodes, VM/list synchronization, improved planned VM editor, ISO reuse workflow, cleanup/resource preview, and new CLI helpers for lab topology, lab instantiation dry-runs, and template updates. This release also fixes libvirt memory unit normalization for topology/resource output.
HyperGery v0.4.0
HyperGery v0.4.0 adds Lab Automation: instantiate labs from templates with guided ISO mapping, dry-run planning, and transactional rollback.
What's new
- Create Lab from Template wizard (3 pages): Lab Identity with live preview, ISO Mapping with per-VM Browse button, Review summary before creation.
- Planned VMs in Lab Templates now carry
iso_required,role, andnotesfields. VM Template defaults are resolved automatically when a planned VM references atemplate_id. - Transactional instantiation:
instantiate_lab_template()creates the lab and all VMs sequentially. If any VM fails, already-created VMs and the lab manifest are removed. Partial rollback failures are surfaced as warnings. dry_run=True: validates all ISOs, names, and resources without creating anything.- Edit VM Template / Edit Lab Template: update any field in place without delete + re-create.
- Add / Remove Planned VMs from the Edit Lab Template dialog.
- Duplicate Lab with VM Cloning: Clone VMs checkbox now enabled when VMs are present; clones qcow2 disks via
qemu-img convert; requires all VMs shut off. - 20 new backend tests (121 total, 4 skipped on system Python).
- New
docs/LAB_AUTOMATION.mdcovering instantiation flow, dry-run, rollback, editing, and smoke test procedure.
Manual smoke (2026-06-03)
Validated on a real Ubuntu KVM/libvirt host: lab template with 2 planned VMs, ISO mapping wizard, VM creation, console, activity log, template editing, and cleanup.
Requirements
Ubuntu 22.04/24.04 with KVM/QEMU/libvirt. See README for install instructions.
HyperGery v0.3.0
HyperGery v0.3.0 introduces Labs & Templates — turning the app into a reusable laboratory environment manager.
What's new
- Lab Manager: create, rename, delete, duplicate, export, and import labs. Each lab gets its own libvirt network, bridge, and collision-free subnet. Lab manifests use schema_version 2.
- Templates Manager: VM Templates (OS, RAM, vCPUs, disk, network, display) and Lab Templates (network mode, planned VMs, notes).
- Create VM from Template: opens the VM wizard with resource fields pre-filled from the template.
- Create Lab from Template: creates a real lab with name, description, and network mode from the template; records
templates_usedin the lab manifest. - Export/Import: templates and labs are portable JSON files with collision rejection on import.
- CLI:
lab list/create/show/rename/delete/export/importandtemplate list/show/deletecommands. - Expanded test suite: 101 tests covering lab/template validation, ID normalization, subnet allocation, bridge naming, export/import roundtrip, and wizard defaults mapping.
Not yet implemented (v0.4 target)
- Auto-create planned VMs from a lab template (requires per-VM ISO selection).
- Edit templates in place.
- Clone VM disks during lab duplicate.
Requirements
Ubuntu 22.04/24.04 with KVM/QEMU/libvirt. See README for install instructions.
HyperGery v0.2.0
HyperGery v0.2.0 introduces the modern PySide6/Qt desktop UI while keeping the real KVM/QEMU/libvirt backend from v0.1.0. Includes a polished dashboard, VM wizard, state chips, preflight card, logs panel, safer destructive actions, and improved Ubuntu/NAS setup documentation.
HyperGery v0.1.0
First real HyperGery version for Ubuntu using KVM/QEMU/libvirt. Includes real VM creation from ISO, qcow2 disks, lab networks, virt-viewer console, snapshots, clone and safe delete. Android Hub, NAS, IsardVDI, P2P and live migration are intentionally not included yet.