IoT Sentinel — Dashboard, Network Map e Backup

IoT Sentinel — Dashboard, Network Map e Backup

Este post é o último de uma série de oito partes sobre o IoT Sentinel. Aqui fecho a série com dashboard, mapa de rede e backup.


Dashboard: tudo num olhar

Depois de sete posts configurando, escaneando, registrando e monitorando, chegou a hora de ver tudo junto. O dashboard do IoT Sentinel é a tela principal da aplicação — a primeira coisa que você vê ao fazer login.

No topo, uma fila de contadores mostra os números essenciais: total de dispositivos, quantos estão online, quantos offline, quantos foram descobertos e quantos já estão registrados. Esses números vêm direto da API, que consulta o MongoDB agrupando por registrationStatus (discovered/registered) e por healthStatus (online/offline/unknown). É uma visão instantânea do estado do seu lab.

Logo abaixo, o dashboard mostra o uptime médio do lab — calculado a partir do histórico de status que o monitoramento real-time vai acumulando ao longo do tempo. Se você configurou o polling a cada 60 segundos como mostrei na Parte 7, depois de alguns dias vai ter dados suficientes para ver tendências reais.

A parte visual fica por conta de dois gráficos construídos com Recharts: um mostra a distribuição de dispositivos por tipo (câmera, sensor, switch, etc.), e o outro mostra a proporção por status (online vs offline vs unknown). Gráficos de rosca, simples e diretos — sem firula, sem animação desnecessária.

O dashboard não tem refresh automático por padrão. Você pode clicar para atualizar ou configurar um intervalo se preferir. A ideia é que ele seja leve — nada de WebSocket na tela principal consumindo recursos sem necessidade.


Network Map: visualize sua rede

Números e tabelas são bons, mas às vezes você quer ver a topologia. O Network Map é um mapa interativo da sua rede, construído com React Flow.

A ideia é simples: cada rede que você cadastrou no Sentinel tem seu próprio mapa. Você seleciona a rede no dropdown e o mapa renderiza todos os dispositivos daquela rede em uma topologia estrela — o gateway no centro, os demais dispositivos ao redor, conectados por linhas.

As cores indicam status: verde para online, vermelho para offline, cinza para unknown. Cada nó mostra o nome do dispositivo, o IP e o tipo. O mapa é interativo — você pode arrastar nós, dar zoom, fazer pan. Se você tem 50 dispositivos numa rede, consegue reorganizar visualmente para entender melhor a distribuição.

Não é um mapa de topologia real no sentido de L2/L3 — o Sentinel não faz traceroute nem descobre switches intermediários. É uma representação lógica baseada nos dados que você tem: gateway + dispositivos na mesma rede. Para a maioria dos homelabs, isso é mais do que suficiente para ter uma visão clara do que está onde.


Backup: proteja seus dados

Esse é o tipo de funcionalidade que você ignora até o dia que precisa. Depois de horas catalogando dispositivos, organizando em locais e redes, configurando credenciais criptografadas e ajustando monitoramento — perder tudo porque o disco morreu ou porque você decidiu reformatar o servidor seria um pesadelo.

O Sentinel tem um sistema de export/import com proteção por senha. O export gera um arquivo compactado (gzip) que contém tudo: dispositivos, locais, redes, grupos, tipos, regras de notificação, configurações, usuários e histórico de status. Tudo em um único arquivo.

As credenciais recebem tratamento especial. Durante o export, cada credencial armazenada é descriptografada com a chave da instância atual e re-criptografada com a senha de backup que você forneceu. A criptografia usa AES-256-GCM com derivação de chave via scrypt — o mesmo padrão que discutimos na Parte 6. Isso significa que o arquivo de backup é seguro mesmo se alguém obtiver acesso a ele: sem a senha, as credenciais são ilegíveis.

O processo é direto: vá em Settings, clique em Export, defina uma senha forte, e pronto. O arquivo é baixado no browser. Guarde-o em algum lugar seguro — um NAS, um cloud storage, um HD externo. Eu mantenho uma rotina de exportar uma vez por semana.


Restore: migração e disaster recovery

O cenário clássico: você trocou de servidor, reinstalou o sistema, ou quer migrar o Sentinel para uma máquina nova. Subiu os containers com docker compose up, abriu o browser, e está olhando para o setup wizard de uma instância zerada.

Aqui entra o restore. O Sentinel permite restaurar um backup completo sem precisar de login — direto pelo setup wizard. Isso faz sentido porque numa instância limpa não existe usuário cadastrado ainda.

Os passos são simples:

  1. Suba uma instância limpa do Sentinel (docker compose up)
  2. Acesse a interface — o setup wizard aparece automaticamente
  3. Na tela de setup, escolha a opção de restaurar backup
  4. Faça upload do arquivo de backup e digite a senha que você usou no export
  5. O Sentinel restaura tudo: locais, redes, dispositivos, credenciais, configurações, usuários

As credenciais passam pelo processo inverso do export: são descriptografadas com a senha do backup e re-criptografadas com a chave da nova instância. Ou seja, a migração é completa — você não precisa recadastrar nenhuma senha.

O restore via setup wizard usa o endpoint restoreFull, que inclui settings e usuários. Já o restore feito por um usuário logado (via Settings) usa o endpoint padrão, que restaura apenas dados operacionais sem sobrescrever configurações do sistema e contas de usuário.


O que você conquistou

Se você acompanhou a série inteira, agora tem um setup completo. Vamos recapitular:

  • Instalou o IoT Sentinel com Docker Compose
  • Organizou seu lab em Locais e Redes
  • Descobriu dispositivos automaticamente com nmap
  • Registrou e categorizou cada dispositivo
  • Armazenou credenciais de forma segura
  • Modelou dispositivos complexos com Channels
  • Configurou monitoramento real-time
  • Tem dashboard, mapa de rede e backup

Seu homelab agora tem um inventário vivo, monitorado e seguro. Não é mais uma planilha abandonada ou uma lista mental de “acho que o IP da câmera é 192.168.1.alguma-coisa”. Cada dispositivo tem nome, tipo, localização, credenciais criptografadas, e um histórico de quando esteve online ou offline.


E o que vem por aí

A série de uso do IoT Sentinel termina aqui, mas o projeto não. O próximo passo é uma série técnica voltada para desenvolvedores: as decisões de arquitetura por trás do Sentinel, como os microserviços foram implementados, por que escolhi NestJS no backend e React no frontend, como funciona a criptografia por baixo dos panos, e os trade-offs que fiz ao longo do caminho.

Se você quer contribuir ou acompanhar o desenvolvimento, o código está no GitHub:

Se você montou seu setup e encontrou algum bug ou tem uma sugestão, abre uma issue no GitHub. Pull requests também são bem-vindos — especialmente para suporte a novos tipos de dispositivos e integrações.

Foi uma série longa, mas espero que tenha sido útil. Documentar o próprio projeto te força a pensar em como explicar decisões que, no momento do código, pareciam óbvias. Nem sempre são.