Sobre o projeto

Homelab Inventory é um aplicativo web self-hosted para documentar, montar, validar e monitorar hardware de homelab. É distribuído como uma imagem Docker (mriverodorta/homelab-inventory) e armazena todo o estado em um volume persistente /data, com bancos de dados SQLite para inventário, telemetria e dados de catálogo. Capacidades principais descritas no README: - Documentação física: organize instalações em projetos, cada um com uma visão fixa de Systems e um ou mais workspaces Canvas reordenáveis e codificados por cores. Coloque servidores, dispositivos NAS, PCs personalizados, monitores, switches, patch panels, sistemas UPS e réguas de energia em um canvas infinito. Monte hosts a partir de CPUs, placas-mãe, refrigeração, RAM, armazenamento, GPUs, adaptadores de rede com ou sem fio, placas de som, gabinetes e fontes de alimentação reutilizáveis. Conecte endpoints de rede, vídeo e energia com cabos codificados por cores e roteados ortogonalmente, e inspecione cada conexão a partir de qualquer endpoint. Uma gaveta de inventário pesquisável para desktop ou mobile suporta criar, duplicar, arquivar, restaurar e remover com segurança. - Validação de compatibilidade: verifica soquete da CPU, geração e limites de energia; geração de memória, capacidade, velocidade, ECC, ajuste DIMM/SO-DIMM e alocação de slots; baias e interfaces de armazenamento; e ajuste de slots de expansão em PCIe, M.2, Mini PCIe, USB, OCP, mezzanine, onboard e interfaces proprietárias. Resultados são classificados como Compatível, Incompatível ou Desconhecido, com alocações de recursos determinísticas, avisos de incompatibilidade e avisos de dados incompletos. Descobertas podem ser revisadas ou ignoradas, e verificações podem ser desabilitadas por host para exceções intencionais. - Catálogo de hardware e modelos: um catálogo de hardware assinado opcional pode ser pesquisado localmente por categoria e filtros específicos de hardware, com importações vinculadas a revisões de modelo verificadas. Atualizações de catálogo são revisadas antes de aplicar, preservando nomes locais, atribuições, posições no canvas, cabos e campos exclusivos da instância. Instalações podem operar totalmente offline com um snapshot de catálogo assinado ou usar modelos privados com importação/exportação JSON com checksum. Contribuições sanitizadas opcionais excluem números de série, endereços, rótulos, atribuições, topologia e evidências de agentes. - Monitoramento de hosts: um Agent somente de saída pode ser inscrito em hosts Linux systemd, Alpine/OpenRC, FreeBSD ou OPNsense, relatando saúde por minuto, histórico de heartbeat, CPU, memória, uptime e detalhes do SO. Utilização ao vivo e telemetria do Inspector chegam por um único stream de eventos enviados pelo servidor autenticado após um snapshot inicial. O uso de armazenamento local é inspecionado por dispositivo físico e ponto de montagem, incluindo tabelas de partição e topologia LVM ou RAID. Serviços instalados localmente podem ser descobertos, com telemetria opcional de contêineres Docker ou Podman limitada. Uma varredura de hardware separada e revisada pode aplicar valores detectados um campo por vez com suporte a Undo. Alertas opcionais via Ntfy ou webhook genérico cobrem indisponibilidades de hosts e mudanças selecionadas em serviços, contêineres ou armazenamento físico, com horários de silêncio, lembretes, tentativas e histórico de incidentes persistido. - Autenticação e acesso: autenticação por senha local, OpenID Connect ou híbrida com convites, sessões, papéis integrados e grupos de permissão personalizados. Instalações novas de produção exigem configuração única do proprietário local; instalações atualizadas têm autenticação desabilitada por padrão. OIDC usa fluxo de Código de Autorização com PKCE. Permissões de API são aplicadas no servidor com roteamento de negação por padrão. Um comando de recuperação pode redefinir o proprietário original. - Compartilhamento: visões Systems e Canvas explicitamente selecionadas podem ser publicadas em lab.gd por meio de uma prévia de privacidade local, com acesso público ou não listado, revisões imutáveis ou substituíveis, sincronização manual ou com debounce, expiração, embeds e metadados opcionais. A inscrição não envia conteúdo de inventário, e o compartilhamento pode ser desabilitado completamente. - Backup e restauração: backups portáteis completos ou baseados em seções no formato .hlibackup, com validação de caminhos, tamanhos, checksums, compatibilidade de esquema e dependências de seção, um backup de recuperação pré-restauração, modo de manutenção e rollback automático em caso de falha. Backups criptografados agendados com retenção configurável são suportados; uma frase secreta é obrigatória para backups agendados uma vez que material de autenticação do proprietário exista. - Implantação: Docker Compose com tags de versão estável, latest ou fixada; variáveis de ambiente cobrem porta, diretório de dados, canal de atualização, intervalo de atualização de registro, compartilhamento lab.gd, bootstrap de autenticação, segredos OIDC, limite de taxa, confiança de proxy e retenção de telemetria. O README alerta contra expor o aplicativo diretamente à internet pública sem HTTPS e controles de acesso, e observa que o projeto está em desenvolvimento ativo assistido por IA e deve ser tratado como uma ferramenta em evolução, não um CMDB empresarial acabado.