Sobre el proyecto

Homelab Inventory es una aplicación web autohospedada para documentar, ensamblar, validar y monitorear hardware de homelab. Se distribuye como imagen Docker (mriverodorta/homelab-inventory) y almacena todo el estado en un volumen persistente /data, con bases de datos SQLite para inventario, telemetría y datos de catálogo. Capacidades principales descritas en el README: - Documentación física: organiza instalaciones en proyectos, cada uno con una vista fija de Sistemas y uno o más espacios de trabajo Canvas reordenables y codificados por colores. Coloca servidores, dispositivos NAS, PC personalizados, monitores, switches, paneles de parcheo, sistemas UPS y regletas en un lienzo infinito. Ensambla hosts a partir de CPU, placas base, refrigeración, RAM, almacenamiento, GPU, adaptadores de red cableados o inalámbricos, tarjetas de sonido, carcasas y fuentes de alimentación reutilizables. Conecta endpoints de red, pantalla y energía con cables enrutados ortogonalmente y codificados por colores, e inspecciona cada conexión desde cualquiera de los extremos. Un cajón de inventario buscable para escritorio o móvil admite crear, duplicar, archivar, restaurar y eliminar de forma segura. - Validación de compatibilidad: verifica socket de CPU, generación y límites de potencia; generación de memoria, capacidad, velocidad, ECC, ajuste DIMM/SO-DIMM y asignación de ranuras; bahías e interfaces de almacenamiento; y ajuste de ranuras de expansión en PCIe, M.2, Mini PCIe, USB, OCP, mezzanine, integradas y propietarias. Los resultados se clasifican como Compatible, Incompatible o Desconocido, con asignaciones de recursos deterministas, advertencias de incompatibilidad y advertencias de datos incompletos. Los hallazgos pueden revisarse o ignorarse, y las comprobaciones pueden deshabilitarse por host para excepciones intencionales. - Catálogo de hardware y plantillas: un catálogo de hardware firmado opcional puede buscarse localmente por categoría y filtros específicos de hardware, con importaciones vinculadas a revisiones de plantilla verificadas. Las actualizaciones del catálogo se revisan antes de aplicarse, preservando nombres locales, asignaciones, posiciones en el lienzo, cables y campos solo de instancia. Las instalaciones pueden funcionar completamente sin conexión con una instantánea de catálogo firmada o usar plantillas privadas con importación/exportación JSON con suma de verificación. Las contribuciones sanitizadas opcionales excluyen números de serie, direcciones, etiquetas, asignaciones, topología y evidencia de agentes. - Monitoreo de hosts: un Agente solo de salida puede inscribirse en hosts con systemd Linux, Alpine/OpenRC, FreeBSD u OPNsense, informando salud por minuto, historial de latidos, CPU, memoria, tiempo de actividad y detalles del SO. La utilización en vivo y la telemetría del Inspector llegan a través de un flujo de eventos enviados por el servidor autenticado después de una instantánea inicial. El uso de almacenamiento local se inspecciona por dispositivo físico y punto de montaje, incluidas tablas de particiones y topología LVM o RAID. Los servicios instalados localmente pueden descubrirse, con telemetría de contenedores Docker o Podman acotada y opcional. Un escaneo de hardware separado y revisado puede aplicar valores detectados campo por campo con soporte de Deshacer. Las alertas opt-in de Ntfy o webhook genérico cubren caídas de hosts y cambios seleccionados de servicios, contenedores o almacenamiento físico, con horas de silencio, recordatorios, reintentos e historial de incidentes persistido. - Autenticación y acceso: autenticación con contraseña local, OpenID Connect o híbrida con invitaciones, sesiones, roles integrados y grupos de permisos personalizados. Las instalaciones de producción nuevas requieren configuración única del propietario local; las instalaciones actualizadas tienen autenticación deshabilitada por defecto. OIDC usa flujo de Código de Autorización con PKCE. Los permisos de API se aplican en el servidor con enrutamiento de denegación por defecto. Un comando de recuperación puede restablecer al propietario original. - Compartir: las vistas de Sistemas y Canvas seleccionadas explícitamente pueden publicarse en lab.gd a través de una vista previa de privacidad local, con acceso público o no listado, revisiones inmutables o reemplazables, sincronización manual o con rebote, expiración, incrustaciones y metadatos opt-in. La inscripción no envía contenido de inventario, y compartir puede deshabilitarse por completo. - Respaldo y restauración: respaldos portátiles completos o por secciones en formato .hlibackup, con validación de rutas, tamaños, sumas de verificación, compatibilidad de esquema y dependencias de secciones, un respaldo de recuperación previo a la restauración, modo de mantenimiento y reversión automática en caso de fallo. Se admiten respaldos cifrados programados con retención configurable; una frase de contraseña es obligatoria para respaldos programados una vez que existe material de autenticación del propietario. - Despliegue: Docker Compose con etiquetas de versión estable, última o fijada; las variables de entorno cubren puerto, directorio de datos, canal de actualización, intervalo de actualización del registro, uso compartido de lab.gd, arranque de autenticación, secretos OIDC, limitación de velocidad, confianza de proxy y retención de telemetría. El README advierte contra exponer la aplicación directamente a internet público sin HTTPS y controles de acceso, y señala que el proyecto está en desarrollo activo asistido por IA y debe tratarse como una herramienta en evolución, no como un CMDB empresarial terminado.