Skip to content

Releases: Elgeryy1/hypergery

HyperGery v1.7.0

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 14 Jun 13:12

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.deb

apt 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, suite needsRealLibvirt.
  • 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
(qemu64 ocultando svm/vmx). Con CPU host-passthrough el
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 de top.
  • 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 con HYPERGERY_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 error address 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 = suite needsRealLibvirt y 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 ssh y acceso al host remoto).
  • App Android: requiere desplegar el API con TLS/VPN; no exponer el Hub a Internet.

HyperGery v1.0.1

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 09 Jun 20:27

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__.py y
    ui_qt/styles.py en 1.0.1; la UI muestra v1.0.1).
  • Fecha: 2026-06-09
  • Origen: rama fix/v1.0.1-migration-safety, integrada en main y etiquetada v1.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_ubuntuOK
  • Focused: pytest tests/test_v1_state_migration.py tests/test_migration.py tests/test_registry.py tests/test_cli.py -q95 passed
  • Suite completa: pytest -q668 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.save confirmado root:root 0600 → checksum del RAM-state best-effort.
    • snapshots_migrated=false + warning "NOT migrated in v1.0.1".
    • .gitignore y 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.save root-owned en qemu:///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, closeEvent Qt, 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 haz git pull y 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), closeEvent Qt con cancelación de jobs, redes del
    Centro de control alineadas con libvirt real, suite de tests needsRealLibvirt,
    e inicio del refactor de main_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

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 09 Jun 18:54

HyperGery v1.0.0 — Release Notes

Estado: release estable. Primera versión final de HyperGery. Promovida desde la
candidate v1.0-rc1 tras el trabajo de feature/v1.1-ux y el UAT final aprobado.

  • Versión: 1.0.0 (pyproject.toml y hypergery_ubuntu/__init__.py en 1.0.0;
    UI muestra v1.0.0). Promovida desde la candidate 1.0.0rc1.
  • Fecha: 2026-06-09
  • Origen: rama feature/v1.1-ux, integrada en main y etiquetada v1.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 (ver docs/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-ubuntu

Ejecución de la app:

QT_QPA_PLATFORM=xcb ~/.venvs/hypergery/bin/hypergery

Notas de upgrade desde release candidate (1.0.0rc1):

  • La versión ya está fijada en 1.0.0 (pyproject.toml y hypergery_ubuntu/__init__.py); la UI
    muestra v1.0.0 (antes v1.1-dev durante el desarrollo).
  • No hay migración de estado destructiva conocida; el estado v1 se migra de forma compatible
    (cubierto por tests/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
    (fix d731440).
  • 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.5live 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

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 05 Jun 19:33

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 hub uploads 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.sh sets 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_package supports transfer: hub: download from the Hub,
    validate checksums, import, then delete the local temp copy and the Hub
    staging copy.

Migration

  • New --transfer hub|nas flag on migrate 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_url points at the NAS Hub; HYPERGERY_HUB_URL and
    ~/.config/hypergery/config.json still 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-url and --uninstall; optional loginctl enable-linger hint for
    headless hosts.

Docs / tests

  • New docs/QUICK_START_V07.md; Hub Transfer documented in
    docs/NAS_LIVE_MIGRATION.md and docs/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 -n on 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:8765 to the NAS Hub
    (http://192.168.1.150:8765). HYPERGERY_HUB_URL and the saved config
    still override the default.
  • Use scripts/install-agent-user-service.sh to 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 with DELETE /packages/<migration_id> once diagnosed.

HyperGery v0.6.0 — NAS Clone Migration

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 05 Jun 11:35

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 doctor for 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, MAC 52: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, and docker compose config passed.

Not Included

  • True live RAM migration or HG-MEMDIFF/custom dirty-page transfer.
  • AutoBoost.
  • Android Hub.
  • IsardVDI.
  • SPICE integrated console.

HyperGery v0.5.0

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 04 Jun 09:25

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

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 03 Jun 20:35

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, and notes fields. VM Template defaults are resolved automatically when a planned VM references a template_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.md covering 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

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 03 Jun 20:15

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_used in 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/import and template list/show/delete commands.
  • 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

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 03 Jun 17:50

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

Choose a tag to compare

@Elgeryy1 Elgeryy1 released this 03 Jun 15:36

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.