Files
ProxMenux/ROADMAP.es.md
T
2026-05-20 20:05:55 +02:00

11 KiB

ProxMenux logo ProxMenux — Roadmap

Última actualización: 2026-05-20 · Versión actual: 1.2.1.2-beta 🇬🇧 English version: ROADMAP.md

Este documento es nuestra hoja de ruta para llevar ProxMenux y ProxMenux Monitor a un estado listo para producción. Está basado en las dos infografías que un colaborador preparó y enriquecido con una auditoría real del código actual.

🖼️ Infografías de origen

Las dos infografías que sirvieron de punto de partida son obra de la comunidad y resumen visualmente las dos grandes áreas de trabajo:

ProxMenux Monitor (Dashboard) ProxMenux (Scripts)
Fases ProxMenux Monitor Fases ProxMenux
Mejoras recomendadas para hacerlo más seguro, útil y apto para producción Mejoras recomendadas para hacerlo más seguro, auditable y apto para producción

Cómo lo usamos:

  • La tabla Estado actual refleja lo que YA tenemos hoy.
  • El Plan por versión marca qué entra en cada release.
  • La sección Cambios publicados se va rellenando a medida que cerramos items, con la versión en la que se entregó.

Símbolos:

  • 🟢 — Hecho y en producción
  • 🟡 — Parcial (existe la base, falta UI o feature completa)
  • 🔴 — Pendiente

🎯 Visión

"La prioridad no es añadir más métricas ni más scripts, sino mejorar seguridad, alertas, permisos, auditabilidad e integración real con Proxmox."

ProxMenux ya es una herramienta potente para administradores que gestionan su propio nodo. El siguiente salto es convertirlo en una herramienta apta para entornos de producción y para clientes:

  • El operador tiene que poder dar acceso de solo lectura a terceros sin miedo a que toquen nada.
  • Tiene que existir un historial auditable de qué pasó y quién lo hizo.
  • Los cambios destructivos tienen que poder previsualizarse y revertirse.
  • La instalación tiene que poder operarse en modo conservador cuando el nodo no es un laboratorio.

📊 Estado actual

ProxMenux Monitor (Dashboard)

1️⃣ Modo solo lectura

Item Estado Notas
Separar monitorizar de controlar 🔴 El dashboard mezcla ambos hoy
Dashboard 100 % read-only 🟡 El scope read_only existe en los API tokens, falta exponerlo al usuario web
Sin acciones de start/stop por defecto 🔴 Requiere lo anterior
Ideal para clientes y producción 🔴 Llega cuando el modo solo lectura esté completo

2️⃣ Permisos y tokens

Item Estado Notas
Roles viewer / operator / admin 🔴 Single-user hoy
Tokens con scopes 🟡 2 scopes (read_only, full_admin), no granulares
Caducidad configurable 🟡 Hoy fija en 365 días
Tokens de solo lectura para NA / homepage 🟢 Cubierto por scope=read_only

3️⃣ Seguridad web

Item Estado Notas
Bind a localhost o LAN 🔴 El backend escucha en 0.0.0.0:8008
HTTPS y proxy inverso guiado 🟢 Documentado, ACME + self-signed CA trust
Allowlist IP opcional 🔴 No existe
Rate limits y bloqueo anti-fuerza bruta 🟡 Hay cooldown en login; no es un panel configurable. Fail2Ban es opcional

4️⃣ Logs y auditoría

Item Estado Notas
Registrar login, logout e intentos fallidos 🟡 Se notifica auth_fail; no hay panel histórico
Guardar IP, usuario y token usado 🟡 Llega a notificación, no se persiste para auditar
Auditar accesos sobre VM/LXC 🔴 Las acciones de control no se registran
Historial claro con resultado y error 🔴 No hay pestaña "Audit"

5️⃣ Alertas útiles

Item Estado Notas
CPU, RAM, disco y temperatura altos 🟢 Health Monitor + thresholds configurables
Snapshot / backup confirmado 🟢 Eventos vzdump_complete
SMART warnings y predicción 🟢 disk_failure_predicted + tiers de disk_io_error (1.2.1.2)
Telegram, Gotify, ntfy, email, webhook 🟢 7 canales activos

6️⃣ PBS y cluster

Item Estado Notas
Último backup por VM/LXC 🟢 Visible en el modal de cada VM/CT
VMs sin backup y jobs fallidos 🟡 vzdump_failed se notifica; falta una vista agregada
Quorum, nodos, estado global 🟢 Health tab + eventos de cluster
Dashboard de salud del entorno 🟢 Health tab

ProxMenux (Scripts y Post-install)

1️⃣ Seguridad operativa

Item Estado Notas
Dry-run / previsualización antes de aplicar 🔴 No existe como flag general
Avisos delante de cambios críticos 🟡 Algunos diálogos, no uniforme
Verificación posterior de la acción 🟡 update_component_status registra el resultado
Confirmación reforzada en tareas sensibles 🟡 Hay whiptail --yesno en algunos scripts; no es regla

2️⃣ Rollback y recuperación

Item Estado Notas
Restaurar última configuración válida 🟢 Sistema backup_restore/ completo (host backup + apply_pending_restore)
Menú de recuperación antes de fallos 🟡 Existe el restore manual, falta un wizard preventivo
Revertir red / postinstall / grupos 🟡 El backup snapshotea, no hay rollback granular por subsistema
Empaquetado para diagnóstico (bug-report) 🔴 No existe el bundle

3️⃣ Scripts externos

Item Estado Notas
Listas, hashes y firma 🔴 Se ejecutan sin verificación
Fijar versión / commit / hash 🔴 Helper-scripts traídos en vivo del upstream
Etiquetar nivel de riesgo 🟡 El menú nuevo añadió "richer context"; falta etiqueta formal
Mostrar script antes de ejecutarlo 🔴 Sin paso de preview

4️⃣ Logs y trazabilidad

Item Estado Notas
Registrar acción, usuario y fecha 🟡 Logs en /var/log/proxmenux/, no estructurados
Guardar comandos y archivos modificados 🔴 No hay tracking de qué tocó cada script
Errores claros con código de salida 🟡 Algunos scripts sí; no es regla
Historial de cambios reciente 🔴 No hay UI "qué hizo ProxMenux en este host"

5️⃣ Modo producción

Item Estado Notas
Perfil conservador para todo el nodo 🔴 El concepto no existe
Bloquear acciones destructivas por defecto 🔴 Tampoco
Limitar cambios de red sin confirmación 🟡 Algunos scripts piden confirmación
Más validaciones y avisos 🟡 Mejoras incrementales, no como modo

6️⃣ Entornos reales

Item Estado Notas
Salida tipo "esto pasó" clara y multilingüe 🟡 translate() + msg_* funcionan; falta resumen final
Visibilidad de quorum / almacenamiento 🟢 En el Monitor
Postinstall Proxmox Backup Server 🟢 Script PBS ya está
Detector de fallos rápido para escenarios 🟡 Health Monitor; falta "preflight" antes de cada cambio

🗺️ Plan por versión

Los items se agrupan por relación valor / esfuerzo, no por orden estricto. El plan se puede reordenar según feedback de testers del grupo.

v1.2.2-beta — Lo barato y de alto impacto

Objetivo: cerrar los huecos que ya tienen base en el código y dan mejora visible de seguridad sin tocar arquitectura.

  • Modo solo lectura del usuario web. Bindeo del scope read_only ya existente del JWT a la sesión interactiva. La UI esconde los botones de acción (start/stop, ejecutar scripts, terminal) cuando el scope no es full_admin.
  • Tabla de audit log + pestaña en el dashboard. Nueva tabla SQLite audit_log(ts, user, ip, action, target, result, error). Hookear desde flask_security_routes y flask_script_runner. Render simple en una pestaña "Audit".
  • Allowlist IP. Campo nuevo en Settings → Security → "Limitar acceso a estas IPs". Decorator @require_allowed_ip aplicado a todas las blueprints.
  • Caducidad configurable de tokens API. Campo expires_at en la metadata del token; honrarlo en verify_token.

v1.2.3-beta — Lo medio

Objetivo: dar herramientas serias de operación antes de aplicar cambios.

  • Tokens con scope granular. Mínimo cuatro: read_only, vm_control, script_runner, full_admin. El frontend enseña qué scopes tiene el token actual.
  • Dry-run en scripts post-install. Flag --dry-run compatible con todos los scripts de scripts/post_install/. La salida muestra exactamente qué cambiaría sin tocar el host.
  • Bundle de diagnóstico (proxmenux bug-report). Comprime /var/log/proxmenux/, journalctl -u proxmenux-monitor, dmesg --since=24h, dpkg -l | grep -i proxmenux, managed_installs.json y los errors/disk_observations de la base de datos en un único .tar.gz. Output ofuscado de tokens y secrets.
  • Vista agregada "VMs sin backup". Una nueva tarjeta en el tab de Backups que liste todas las VM/CT sin job de backup reciente, con accesos directos al PBS.

v1.3.0 — Lo grande

Objetivo: el salto a producción. Requiere release mayor por cambios de modelo de datos y de UX.

  • RBAC con roles viewer / operator / admin. Multi-usuario, contraseña por usuario, role por sesión. Migración de auth.json a tabla users(id, username, password_hash, role, created_at, last_login). Revisión de todas las blueprints para mapear endpoints → role mínimo.
  • Modo producción. Flag global en /etc/proxmenux/profile que conmuta:
    • Confirmaciones reforzadas
    • Anti-cascade más agresivo
    • Acciones destructivas ocultas o deshabilitadas
    • Allowlist IP forzada a no-vacía
    • Tokens full_admin deshabilitados en favor de vm_control + ack
  • Rollback granular por subsistema. Sobre la infraestructura backup_restore existente, permitir revertir solo "Red", solo "Post-install", solo "Grupos y permisos", etc.
  • Historial de cambios visible en el Monitor. Pestaña "Changes" que liste cada modificación que ProxMenux hizo sobre el host (archivo, antes / después, script responsable).

Probablemente fuera de scope

  • Firma criptográfica de scripts upstream. Depende del comportamiento de community-scripts (no controlamos su pipeline). Mantener un mirror firmado propio sería mucho trabajo para poco beneficio. Cerrado salvo decisión externa.

📦 Cambios publicados

Esta sección se actualiza con cada release. Sin tocar el plan de arriba: aquí se anota qué pasó de pendiente (🔴 / 🟡) a hecho (🟢) y en qué versión.

Fecha Versión Item Notas
Aún no hay items cerrados de este roadmap

💬 Cómo aportar

Cualquier persona del grupo puede:

  • Comentar en el item que considere prioritario o que falte.
  • Proponer un nuevo item con el formato de la tabla (categoría + descripción + por qué importa).
  • Sugerir mover items entre versiones si el orden no encaja con su uso real.

El roadmap es vivo y se reordena. La única regla es: los items solo cambian de estado 🔴/🟡🟢 cuando hay código que los respalda en una release publicada.