He transformado completamente la interfaz de VirtManager a un dashboard moderno tipo escritorio con:
static/index.html)Características:
Colores y Estilos:
static/dashboard.js)Funcionalidades:
loadVMs(): Carga lista de VMs y las renderiza en el sidebarselectVM(vmName): Selecciona una VM y muestra sus detallesdisplayVMDetails(): Renderiza información en tabs (Resumen, Discos, Red)createVM(): Crea nueva VMstartVM(), stopVM(): Acciones de controldeleteVMConfirm(): Elimina VM con confirmaciónopenBootOrderModal(): Modal para cambiar orden de arranqueopenAddDiskModal(): Modal para agregar discosopenConsole(): Abre consola VNC┌─────────────────────┐
│ VirtManager │
│ Virtual Dashboard │
├─────────────────────┤
│ • VM1 (running) │ ← Click para seleccionar
│ • VM2 (shut off) │
│ • VM3 (paused) │
│ │
│ [↻] [+ Nueva] │ ← Acciones
└─────────────────────┘
┌─────────────────────────────────────────────┐
│ Nombre de VM [Stop] [Console] [Delete] ... │ ← Barra superior
├─────────────────────────────────────────────┤
│ Resumen │ Discos │ Red │ ← Tabs
├─────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ │
│ │Config │ │ Display │ │
│ │• CPUs: 2 │ │• Puerto │ │
│ │• Mem: 2G │ │• VNC: 5901 │
│ │• State │ └──────────┘ │
│ └──────────┘ ┌──────────┐ │
│ │Acciones │ │
│ │• Arranque│ │
│ │• + Disco │ │
│ └──────────┘ │
└─────────────────────────────────────────────┘
| Característica | Antes | Después |
|---|---|---|
| Layout | Tabla + Formularios | Dashboard moderno |
| Selección | Click en botón | Click en item sidebar |
| Info VM | Modal popup | Tabs en panel principal |
| Acciones | Tabla horizontal | Botones contextuales |
| Iconos | Ninguno | Bootstrap Icons |
| Responsive | Media queries | Flex layouts |
| Colores | Bootstrap defaults | Gradientes personalizados |
🟢 Running - Verde (#28a745)
⚫ Shut off - Gris (#6c757d)
⏸ Paused - Amarillo (#ffc107)
❌ Crashed - Rojo (#dc3545)
static/
├── index.html (NUEVO - Dashboard moderno)
├── dashboard.js (NUEVO - Lógica del dashboard)
├── app.js (mantenido como backup)
├── index.html.bak (respaldo del HTML antiguo)
└── index_old.html (HTML anterior)
dashboard-container flexsidebar y sidebar-vmsmain-content y content-area✅ Compatible con todos los navegadores modernos ✅ Responsive en móvil (sidebar se ajusta) ✅ Bootstrap 5.3 ✅ Bootstrap Icons 1.11 ✅ Sin dependencias adicionales
Inicia el servidor:
cd /home/creylopez/virtmanager
source venv/bin/activate
sudo -E venv/bin/uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Abre en navegador:
http://localhost:8000
Usa el dashboard:
app.js se mantiene para referencia históricaindex_old.htmldashboard.js reemplaza la funcionalidad