El pulso de tu red doméstica. En tiempo real. Sin nube.
Vigila tus routers, dibuja la topología, puntúa la salud de la red y recibe
alertas, desde un único binario autoalojado. Nada sale de tu LAN.
Prueba la demo en vivo · Tour completo de funciones
No necesitas un solo router para ver NetPulse funcionando:
- demo.netpulse.cloudless.club es la app real con una red de ejemplo completa cargada, en modo de solo lectura y sin registro. Navega, cambia el tema, cambia de idioma, mira las actualizaciones en vivo.
- netpulse.cloudless.club/features es el inventario completo: cada pantalla y cada función, con las decisiones técnicas y el alcance honesto de cada una.
Resumen de flota y una puntuación de salud que significa algo. Un único valor 0-100 condensa latencia, pérdidas, uptime y temperatura por router y para toda la red, actualizado en vivo cada 5 segundos por SSE. Tráfico WAN en vivo contra tu plan contratado, feed de alertas, estadísticas de AdGuard Home y peers WireGuard en la misma pantalla (es la captura de arriba).
Un mapa de topología que se dibuja solo. Inferido en vivo del FDB del bridge (y de LLDP donde está disponible, con LLDP-MIB en los switches gestionados por SNMP): clientes cableados e inalámbricos bajo el router y el puerto por los que hablan de verdad, switches gestionados e inferidos, hosts de Proxmox con sus VMs anidadas y túneles WireGuard trazados del peer a Internet. Los dispositivos callados conservan su sitio; nada salta al refrescar. Arrastra los nodos a tu gusto y el layout queda congelado para ti.
Cada dispositivo, clasificado. Hostnames, IPs, detección de tipo (patrones de hostname + OUI), primer visto, banda y señal para clientes Wi-Fi, y el router al que está asociado cada uno. Etiqueta dispositivos, reserva IPs y entérate cuando aparece algo nuevo.
Salud por router, de un vistazo. Modelo, firmware, CPU, memoria, temperatura, uptime y tráfico en vivo de cada router, con historial por puerto y desglose de clientes por banda. Los switches gestionados sondeados por SNMP también son ciudadanos de primera, y cualquier unidad se puede pausar sin borrarla: sin sondeo ni alertas, con su histórico intacto.
Y el resto del tour:
- WireGuard: peers con sus nombres reales, últimos handshakes, transferencia por peer.
- AdGuard Home: estadísticas de consultas, porcentaje bloqueado, dominios más bloqueados.
- Wi-Fi y roaming: matriz de señal por AP, estado 802.11r, utilización por canal, eventos de roaming persistentes.
- Analizador de canales WiFi: un espectro real por radio, cada red dibujada sobre el eje de frecuencias con puntuación de congestión por canal. Lee el aire y aconseja; nunca escribe en tus routers.
- Actualizaciones de firmware de la flota: actualiza dispositivos OpenWrt desde la UI, solo OpenWrt vanilla (lista filtrada, con nota explicativa).
- Rack físico (preview en Labs): dibuja tu rack de 19", coloca tu hardware y deja que NetPulse proponga el cableado desde la topología detectada. Apagado por defecto.
- Alertas que te encuentran: temperatura, dispositivo nuevo, firmware disponible, WAN caída, problemas de agente; feed en la campana más canales de aviso (Web Push nativo, ntfy, Telegram y webhook saliente). Los canales de aviso solo llevan las alertas marcadas como urgentes; el nivel del feed (ninguna / urgentes / todas) se configura aparte en Alertas.
- Multiusuario: contraseñas bcrypt, roles admin y viewer, idioma por usuario (ES/EN).
- PWA instalable: móvil o escritorio, en vivo por SSE, temas claro/oscuro.
- Ciudadano OpenWrt de primera: paquetes nativos
netpulse-agent(.ipk/.apk), páginaluci-app-netpulse, config UCI, init procd con self-heal. O el servidor entero en modo on-box. - Se actualiza solo: el updater integrado comprueba releases y las aplica con swap atómico.
- MQTT + Home Assistant (opcional): publica el estado de la flota (salud,
clientes, vitales por router y alertas) en un broker MQTT; Home Assistant
descubre las entidades solo. Los routers que se exponen solos con NetGrip no
se duplican. Desactivado por defecto y sin nube: se configura desde la
tarjeta MQTT de Ajustes (o con las variables de entorno
NETPULSE_MQTT_*, o las opciones UCImqtt_*en on-box). Topics, entidades y limitaciones en el manual.
Un servidor MCP para tu asistente de IA. NetPulse lleva un servidor
MCP embebido de solo lectura (streamable
HTTP en /mcp) para que tu asistente consulte el estado de la flota, la
salud por router, los dispositivos conocidos, los peers WireGuard, las
estadísticas de AdGuard Home, el grafo de topología y las alertas activas con
un token de API. Solo tokens (nunca la cookie de sesión), rate limit y cada
llamada registrada en el log de auditoría. Desactivado por defecto: actívalo
con NETPULSE_MCP_ENABLED=1 y crea un token en Ajustes → Tokens de API.
Mantén el puerto en tu LAN: quien tenga el token puede leer el estado
completo de tu red.
Esto sigue siendo una selección: todas las funcionalidades están en la web, una a una, y todo lo anterior se puede tocar en la demo en vivo.
Necesitas una caja Linux con systemd (x86_64, arm64 o armv7; un LXC o VM pequeña sobra) y routers OpenWrt/GL.iNet en tu LAN.
1. Instala el servidor en la caja:
curl -fsSL https://raw.githubusercontent.com/gnacho/netpulse/main/install.sh | shEl instalador es shell plano y legible (inspecciónalo primero):
detecta distro y arquitectura, descarga la release verificada contra
checksums.txt, crea un servicio systemd netpulse enjaulado y muestra la
contraseña inicial de admin una sola vez. Re-ejecutar la misma línea
actualiza; sh install.sh --uninstall desinstala.
2. Abre la app en http://<ip-del-servidor>:3000, entra con la
contraseña impresa y el gateway ya está ahí: NetPulse lo encuentra en el
primer arranque por descubrimiento LAN (barrido TCP :22 con fingerprinting
ubus/GL-UI).
3. Autoriza la clave SSH. El servidor generó su propio par de claves en el primer arranque. Copia la clave pública desde Ajustes → Red y, en cada router que quieras monitorizar, añádela:
echo "<clave pública de Ajustes>" >> /etc/dropbear/authorized_keys4. Instala los agentes desde la app. Abre Routers y baja hasta la tabla de agentes: cada router OpenWrt tiene su fila, y los que no tienen agente ofrecen el botón Instalar agente. Un clic y el servidor registra el agente, empuja el binario correcto para la arquitectura del router, escribe la config y arranca el servicio; aparece como conectado en segundos. Los routers a los que el servidor no llega por SSH usan el token de emparejamiento (Ajustes → Adopción de agentes, mira la sección plegada de abajo).
5. Llévatela contigo. Instala la PWA desde el navegador (Añadir a pantalla de inicio / Instalar app) y activa Web Push en Ajustes: las alertas llegan al móvil aunque la pestaña esté cerrada.
¿Prefieres verla primero en tu propio hardware? DEMO_MODE=1 ./netpulse
levanta la misma app con una red de muestra de 67 dispositivos, sin routers.
Otras vías de instalación
Paquetes OpenWrt. Cada release publica netpulse-agent y
luci-app-netpulse como paquetes instalables (.ipk para OpenWrt 24.10,
.apk para 25.12, más x86/64). Bájalos de la
última release:
# OpenWrt 24.10 (ipk)
opkg install ./netpulse-agent_*.ipk ./luci-app-netpulse_*.ipk
# OpenWrt 25.12 (apk)
apk add --allow-untrusted ./netpulse-agent-*.apk ./luci-app-netpulse-*.apkEl paquete trae una config vacía, así que apúntalo a tu servidor antes de arrancar:
uci set netpulse-agent.main.server='http://<ip-del-servidor-netpulse>:3000'
uci set netpulse-agent.main.slug='<slug>'
uci set netpulse-agent.main.token='<token hex de 64>'
uci commit netpulse-agent
service netpulse-agent enable && service netpulse-agent startSi el servidor ya puede hacer SSH al router, sáltate todo esto y pulsa Instalar agente en la app: hace cada paso por ti.
Token de emparejamiento. Para routers a los que el servidor no llega por
SSH, Ajustes → Adopción de agentes muestra un token reutilizable:
install-agent.sh --pairing-token (ejecutado desde cualquier máquina que
alcance el router y el servidor) registra el agente en el primer contacto.
Sidecar de latencia. Sondeos TCP de latencia por router a largo plazo, opcionales:
curl -fsSL https://raw.githubusercontent.com/gnacho/netpulse/main/install-collector.sh | shModo on-box. ¿Sin caja aparte? El servidor corre en el propio router OpenWrt, con config UCI y TLS autofirmado con pinning SPKI.
Las releases van firmadas, con checksums, y llegan a tu flota por el actualizador integrado; la app muestra un panel breve y legible de "qué ha cambiado" antes de actualizar. El historial completo vive en CHANGELOG.md y en la página de releases; el plan que viene, en docs/ROADMAP.md.
- Manual de usuario (también en inglés): cada pantalla explicada, menú a menú, con procedimientos paso a paso.
- Web del proyecto: el proyecto en cinco minutos, con tour de funciones, FAQ y capturas.
- Hoja de ruta: qué está hecho y qué viene.
- Discusiones: preguntas, ideas y hablar del futuro.
NetPulse no existiría sin OpenWrt. Toda la premisa del proyecto, que el hardware de tu red sea realmente tuyo y no dependa del firmware cerrado de un fabricante, solo es posible porque OpenWrt existe. Si NetPulse te sirve, el mérito real es de la comunidad de OpenWrt.