Funcionalidades

Tudo o que o NetPulse consegue ver

Uma lista completa do que a app monitoriza, e o raciocínio por trás das escolhas técnicas.

Inventário de funcionalidades

Da rede à interface

O NetPulse lê dados dos teus routers e mostra-os num único ecrã. A sondagem é somente de leitura; o que escreve é sempre explícito e coberto por reversão.

Painel de saúde

Uma pontuação de 0 a 100 que condensa latência, perdas, uptime e temperatura. Ao lado, o caudal WAN em direto face ao teu plano contratado, latência média e dispositivos ligados.

  • Pontuação de saúde 0-100 com cálculo ponderado por router
  • Caudal WAN, pico do dia, média de 24 h e total
  • Atualização em direto por SSE a cada ~5 s
Disponível

Topologia em direto

Mapa semântico construído a partir do FDB da bridge e LLDP quando disponível. Desenha routers, switches, hipervisores, contentores aninhados, clientes com e sem fios e túneis WireGuard. E quando a inferência não consegue saber onde algo está ligado, fixa o dispositivo ao seu router e porta exatos à mão.

  • Inferência de switches geridos e inferidos
  • Hipervisores com contentores aninhados visíveis
  • Animação de tráfego e estado das ligações
  • Modo de edição: arrasta os nós e guarda o teu layout
Disponível

Dispositivos

Cada cliente classificado automaticamente por padrões de hostname e OUI, com banda, sinal em dBm, primeira aparição e o router ou porta com que fala.

  • Classificação por tipo: computador, telemóvel, IoT, câmara, consola...
  • Banda (2,4 GHz / 5 GHz / cabo) e sinal
  • Estado online/offline e primeira aparição
Disponível

Frota de routers

Vista de conjunto de todos os teus routers com CPU, memória, temperatura, uptime, clientes ligados e um mini sparkline de carga das últimas 24 h. Os switches geridos sondados por SNMP também são cidadãos de primeira, com o seu histórico de tráfego e os seus clientes.

  • Cartão por router com papel (gateway / AP / switch)
  • Pausa uma unidade sem a apagar: sem sondagem nem alertas, com o histórico intacto
  • LLDP-MIB em switches SNMP: uplinks reais sem OpenWrt
Disponível

Agente e atualizações

O agente é um pacote nativo de OpenWrt (.ipk e .apk, de mips a x86/64) com init procd, config UCI e watchdog. O servidor instala e atualiza a frota inteira a partir da UI, e roda os tokens a quente sem reinstalar.

  • Instalação do agente a partir da UI do servidor
  • Aviso de agente desatualizado e botão de upgrade
  • Rearme e estado do agente em tempo real
  • owut check: vê se o teu router tem atualização de firmware
  • Actualizações de firmware a partir da UI, só OpenWrt vanilla
Disponível

WiFi e roaming

Matriz de sinal entre APs e clientes, eventos de roaming guardados durante 30 dias, e ferramentas para reancorar clientes sticky ou expulsá-los de um AP para que escolham um melhor.

  • Eventos de associação/desassociação e roaming
  • Recomendação de reancoragem por sinal
  • Migração do steering de DAWN para usteer
Disponível

Analisador de canais Wi-Fi

Um espectro real por rádio: cada rede desenhada como um sino no eixo de frequências, com as zonas DFS sombreadas e uma faixa contínua de ocupação. A sua rede, vista como o ar a vê.

  • Pontuação de congestão por canal (ótimo, moderado, saturado); clique para focar
  • As suas próprias redes nunca congestionam um canal (detecção por MAC, SSID e dawn/usteer)
  • Só sugere: aplicar o canal fica nas suas mãos, no seu router
Disponível

Detalhe das portas

Vista por porta dos switches: velocidade negociada, tráfego, erros, estado da ligação e alertas específicos como porta fantasma, flapping ou velocidade degradada.

  • Séries temporais de tráfego por porta
  • Alertas de porta fantasma, flapping e ligação degradada
  • Painel frontal do switch
Disponível

WireGuard

Lista de peers, últimos handshakes, transferência por peer e desenho do túnel no mapa de topologia, com cada peer etiquetado pelo seu nome real da configuração UCI.

  • Estado de cada peer e tempo desde o último handshake
  • RX/TX acumulado por túnel
  • Visualização do túnel da Internet até ao gateway
Disponível

AdGuard Home

Estatísticas de consultas DNS, percentagem bloqueada, domínios mais bloqueados e que clientes usam o filtro, tudo ao lado do resto da rede.

  • Consultas e bloqueios de 24 h
  • Top de domínios bloqueados
  • Latência média do DNS
Disponível

Alertas

Seis categorias com urgência por categoria: temperatura, firmware disponível, dispositivo novo, handshake WireGuard, porta de rede e eventos de roaming. Feed na campainha e notificações Web Push.

  • Feed persistente com resolução automática
  • Web Push nativo via VAPID, sem terceiros
  • Sugestões de ação nos alertas de porta
Disponível

Relatórios

Relatórios de disponibilidade diários, semanais e mensais por router e por dispositivo. Em desenvolvimento: tráfego, atividade, resumo de alertas e exportação.

  • Disponibilidade por router e dispositivo
  • Vistas diária, semanal e mensal
  • Exportação CSV/JSON planeada
Parcial / em desenvolvimento

Definições

Uma só coluna com um índice fixo que te acompanha ao fazer scroll: utilizadores e papéis, idioma por utilizador, aparência com pré-visualizações reais, limiares de dados, routers, serviços e integrações, orquestração e atualização automática.

  • Utilizadores com papéis e bcrypt
  • Teste de velocidade WAN real, executado a partir do servidor
  • Atualização automática com changelog
Disponível

Modo demo

DEMO_MODE=1 levanta uma rede de exemplo completa com 67 dispositivos, sem routers reais. Útil para testar a interface antes de instalar.

  • Dataset canónico de 67 dispositivos
  • A mesma interface que o modo real
  • Demo online pública em demo.netpulse.cloudless.club
Disponível

App LuCI

luci-app-netpulse integra o estado do agente na interface web do OpenWrt: procd, UCI, logs, reinício e uma ligação à app principal.

  • Estado do agente no LuCI
  • Reinício e rearme do agente
  • Pacote .ipk/.apk em todas as releases
Disponível

Modo on-box

Se não tens uma caixa à parte, o servidor pode correr no próprio router OpenWrt, com config UCI, pinning TLS e emparelhamento local.

  • Binário estático para routers compatíveis
  • Config UCI nativa
  • Certificado autoassinado com SPKI pinning
  • HTTPS opcional para a UI: os teus certificados ou autoassinado
Disponível

Assistente de IA (MCP)

Servidor MCP integrado em /mcp: o seu assistente de IA consulta o estado da frota, os dispositivos, os alertas e a topologia por HTTP com um token de API. Ferramentas de só leitura sobre a última sondagem.

  • Frota, saúde por router, dispositivos, peers WireGuard, AdGuard, topologia e alertas
  • Só tokens de API (nunca o cookie de sessão), com rate limit
  • Cada chamada de ferramenta fica registada para auditoria
Disponível

Rack físico

Desenhe o seu rack de 19 polegadas, coloque routers, switches e servidores por unidade U, e deixe o NetPulse propor a cablagem a partir da topologia detectada, incluindo os uplinks entre routers. Pré-visualização inicial.

  • Racks e montagens com altura U e proporção real de 19 polegadas
  • Cablagem proposta a partir do FDB: os cabos importados ficam marcados como detectados
  • Desligado por defeito: ativa-se em Ajustes, Labs
Labs (experimental)

NetPulse e Home Assistant

O NetPulse publica o estado da frota num broker MQTT e o Home Assistant descobre-o sozinho: cria os dispositivos e as suas entidades sem definires nada à mão. Tudo acontece na tua rede local.

  • A instalação completa
  • Cada router, à parte
  • Controlar o router a partir do Home Assistant
Disponível Home Assistant
Decisões técnicas

Porque foi construído assim

O NetPulse não é um produto de marketing: é uma ferramenta pessoal construída para resolver problemas reais. Estas são as decisões que mais perguntas recebem.

Porque OpenWrt / GL.iNet?

O NetPulse nasceu de uma rede doméstica com quatro routers: um GL.iNet Flint 2 como gateway e três Xiaomi AX6 em segunda mão. O OpenWrt permite flashar, inspecionar e controlar o hardware. Sem isso não haveria forma de ler o FDB, o iwinfo ou os eventos iw que alimentam a app.

Porque Go + SQLite embebida?

Um único binário estático com CGO desativado. Não precisa de toolchain C no destino, atualiza-se com uma troca atómica e guarda utilizadores, sessões e séries temporais numa SQLite local com WAL. O modernc.org/sqlite torna-o totalmente estático.

Porque é que a sondagem é somente de leitura?

O servidor gera o seu próprio par de chaves ed25519 e tu autorizas a chave pública em cada router. A partir daí a sondagem só lê: ubus, /proc, iwinfo, bridge fdb, wg show. As ações que escrevem (reservar um IP, bloquear um dispositivo, orquestrar serviços, atualizar firmware) são sempre explícitas, acionadas por um admin e aplicadas com snapshot e reversão automática.

Porque systemd e não Docker?

O NetPulse monitoriza uma rede; não precisa de um contentor para isso. Um serviço systemd em sandbox com um ficheiro de serviço simples, logs em journald e reinício automático é mais leve e mais fácil de operar num LXC ou VM pequena.

Porque PWA + SSE?

A interface é uma SPA React com Vite e Tailwind que se instala como PWA. O backend envia eventos em direto por SSE a cada ~5 s. Sem polling constante nem WebSocket: o SSE é unidirecional, reconecta-se sozinho e funciona bem atrás de proxies caseiros.

Porque de DAWN para usteer?

Começámos com DAWN para o steering WiFi porque era a opção mais visível na comunidade OpenWrt. Em redes reais vimos que podia negar autenticações em cadeia, expulsar clientes de forma inesperada e manter bugs por resolver no modelo peer-to-peer. O usteer é o daemon oficial do OpenWrt, com funcionalidades equivalentes e um modelo mais estável. A migração para usteer está em curso e mantém a mesma visibilidade de roaming.

O que o NetPulse não é

É importante ser honesto quanto ao âmbito. O NetPulse não pretende ser:

  • Um NMS empresarial como Zabbix, LibreNMS ou PRTG. Não escala para milhares de nós nem suporta milhares de MIBs SNMP.
  • Uma solução na nuvem. Não há telemetria, dashboards centralizados nem apps móveis nativas.
  • Uma ferramenta de configuração automática massiva. A orquestração existe, mas é opt-in e por plano.
  • Uma solução universal para qualquer router. Foi testado em OpenWrt / GL.iNet; outros firmwares precisariam de adaptação.
Aparência
Tema