Funciones

Todo lo que NetPulse puede ver

Un listado completo de lo que la app monitoriza, y por qué se tomaron las decisiones técnicas que la hacen posible.

Inventario de funciones

De la red a la interfaz

NetPulse lee datos de tus routers y los muestra en una sola pantalla. El sondeo es de solo lectura; lo que escribe es siempre explícito y con rollback.

Panel de salud

Una puntuación de 0 a 100 que condensa latencia, pérdidas, uptime y temperatura. A su lado, el tráfico WAN en vivo comparado con tu plan contratado, latencia media y número de dispositivos.

  • Health score 0-100 con cálculo ponderado por router
  • Caudal WAN, pico del día, media de 24 h y total
  • Actualización en vivo por SSE cada ~5 s
Disponible

Topología en vivo

Mapa semántico construido desde el FDB del bridge y LLDP cuando está disponible. Dibuja routers, switches, hipervisores, contenedores anidados, clientes cableados e inalámbricos y túneles WireGuard. Y cuando la inferencia no puede saber dónde está enchufado algo, ancla el dispositivo a su router y boca exactos a mano.

  • Inferencia de switches gestionados e inferidos
  • Hipervisores con contenedores anidados visibles
  • Animación de tráfico y estado de enlaces
  • Modo edición: arrastra los nodos y guarda tu layout
Disponible

Dispositivos

Cada cliente clasificado automáticamente por patrones de hostname y OUI, con banda, señal en dBm, primer visto y el router o puerto al que habla.

  • Clasificación por tipo: ordenador, móvil, IoT, cámara, consola...
  • Banda (2.4 GHz / 5 GHz / cable) y señal
  • Estado online/offline y first-seen
Disponible

Flota de routers

Vista de conjunto de todos tus routers con CPU, memoria, temperatura, uptime, clientes conectados y mini sparkline de carga de las últimas 24 h. Los switches gestionados sondeados por SNMP también son ciudadanos de primera, con su histórico de tráfico y sus clientes.

  • Tarjeta por router con rol (gateway / AP)
  • Alerta por temperatura o uso crítico
  • Detalle de interfaces y backhaul
Disponible

Agente y actualización

El agente es un paquete nativo de OpenWrt (.ipk y .apk, de mips a x86/64) con init procd, config UCI y watchdog. El servidor instala y actualiza la flota entera desde la UI, y rota los tokens en caliente sin reinstalar.

  • Instalación del agente desde la UI del servidor
  • Aviso de agente desactualizado y botón de upgrade
  • Rearme y estado del agente en tiempo real
  • owut check: comprueba si tu router tiene actualización de firmware
Disponible

WiFi y roaming

Matriz de señal entre APs y clientes, eventos de roaming persistentes durante 30 días, y herramientas para re-anclar clientes sticky o expulsarlos de un AP para que elijan uno mejor.

  • Eventos de asociación/desasociación y roaming
  • Recomendación de re-anclaje por señal
  • Migración del steering de DAWN a usteer
Disponible

Detalle de bocas

Vista por puerto de los switches: velocidad negociada, tráfico, errores, estado del link y alertas específicas como puerto fantasma, flapping o velocidad degradada.

  • Series temporales de tráfico por puerto
  • Alertas de puerto fantasma, flapping y degradado
  • Panel frontal del switch
Disponible

WireGuard

Listado de peers, últimos handshakes, transferencia por peer y dibujo del túnel en el mapa de topología, con cada peer etiquetado por su nombre real de la configuración UCI.

  • Estado de cada peer y tiempo desde el último handshake
  • RX/TX acumulado por túnel
  • Visualización del túnel desde Internet hasta el gateway
Disponible

AdGuard Home

Estadísticas de consultas DNS, porcentaje bloqueado, dominios más bloqueados y qué clientes usan el filtro, todo junto al resto de la red.

  • Consultas y bloqueos de 24 h
  • Top de dominios bloqueados
  • Latencia media del DNS
Disponible

Alertas

Seis categorías con urgencia por categoría: temperatura, firmware disponible, nuevo dispositivo, handshake WireGuard, puerto de red y eventos de roaming. Feed en la campana y notificaciones Web Push.

  • Feed persistente con resolución automática
  • Web Push nativo VAPID sin terceros
  • Sugerencias de acción en alertas de puerto
Disponible

Informes

Reportes de disponibilidad diarios, semanales y mensuales por router y por dispositivo. En desarrollo: tráfico, actividad, resumen de alertas y exportación.

  • Disponibilidad por router y dispositivo
  • Vistas diaria, semanal y mensual
  • Exportación CSV/JSON planificada
Parcial / en desarrollo

Ajustes

Una sola columna con un índice fijo que te sigue al hacer scroll: usuarios y roles, idioma por usuario, apariencia con previews reales, umbrales de datos, routers, servicios e integraciones, orquestación y auto-actualización.

  • Usuarios con roles y bcrypt
  • Test de velocidad WAN real, ejecutado desde el servidor
  • Auto-actualización con changelog
Disponible

Modo demo

DEMO_MODE=1 levanta una red de muestra completa con 67 dispositivos sin necesidad de routers reales. Útil para probar la interfaz antes de instalar.

  • Dataset canónico de 67 dispositivos
  • Misma interfaz que modo real
  • Demo online pública en demo.netpulse.cloudless.club
Disponible

App LuCI

luci-app-netpulse integra el estado del agente dentro de la interfaz web de OpenWrt: procd, UCI, logs, reinicio y enlace a la app principal.

  • Estado del agente en LuCI
  • Reinicio y rearme del agente
  • Paquete .ipk/.apk en cada release
Disponible

Modo on-box

Si no tienes una caja aparte, el servidor puede correr en el propio router OpenWrt, con configuración UCI, pinning TLS y emparejamiento local.

  • Binario estático para routers compatibles
  • Config UCI nativa
  • Certificado autofirmado con SPKI pinning
  • HTTPS opcional para la UI: tus certificados o autofirmado
Disponible
Decisiones técnicas

Por qué se hizo así

NetPulse no es un producto de marketing: es una herramienta personal que se construyó para resolver problemas reales. Estas son las decisiones que más preguntas reciben.

¿Por qué OpenWrt / GL.iNet?

NetPulse nace de una red doméstica con cuatro routers: un GL.iNet Flint 2 como gateway y tres Xiaomi AX6 de segunda mano. OpenWrt permite flashear, inspeccionar y controlar el hardware. Sin eso no habría forma de leer el FDB, iwinfo o los eventos iw que alimentan la app.

¿Por qué Go + SQLite embebida?

Un único binario estático con CGO desactivado. No necesita toolchain C en el destino, se actualiza con un swap atómico y guarda usuarios, sesiones y series temporales en un SQLite local con WAL. modernc.org/sqlite hace que sea totalmente estático.

¿Por qué el sondeo es de solo lectura?

El servidor genera su propio par ed25519 y tú autorizas la clave pública en cada router. Desde ahí el sondeo solo lee: ubus, /proc, iwinfo, bridge fdb, wg show. Las acciones que escriben (reservar una IP, bloquear un dispositivo, orquestar servicios, actualizar firmware) son siempre explícitas, las lanza un admin y se aplican con snapshot y rollback automático.

¿Por qué systemd y no Docker?

NetPulse monitoriza una red; no necesita un contenedor para hacerlo. Un servicio systemd enjaulado con una unidad simple, logs en journald y reinicio automático es más ligero y más fácil de operar en un LXC o VM pequeña.

¿Por qué PWA + SSE?

La interfaz es una SPA React con Vite y Tailwind que se instala como PWA. El backend envía eventos en vivo por SSE cada ~5 s. No hay polling constante ni WebSocket: SSE es unidireccional, se reconecta solo y funciona bien detrás de proxies caseros.

¿Por qué de DAWN a usteer?

Empezamos con DAWN para el steering WiFi porque era la opción más visible en la comunidad OpenWrt. En redes reales vimos que podía denegar autenticaciones en cadena, expulsar clientes de forma inesperada y mantener bugs sin resolver en el modelo peer-to-peer. usteer es el daemon oficial de OpenWrt, con funciones equivalentes y un modelo más estable. La migración a usteer está en curso y conserva la misma visibilidad de roaming.

Qué no es NetPulse

Es importante ser honesto sobre el alcance. NetPulse no pretende ser:

  • Un NMS empresarial como Zabbix, LibreNMS o PRTG. No escala a miles de nodos ni soporta miles de MIBs SNMP.
  • Una solución en la nube. No hay telemetría, dashboards centralizados ni apps móviles nativas.
  • Una herramienta de configuración automática masiva. La orquestación existe, pero es opt-in y por plan.
  • Una solución universal para cualquier router. Está probado en OpenWrt / GL.iNet; otros firmwares necesitarían adaptación.
Apariencia
Tema