Skip to content

Latest commit

 

History

History
278 lines (225 loc) · 13.2 KB

README.es.md

File metadata and controls

278 lines (225 loc) · 13.2 KB

NetPulse

English | Español

Sitio web Demo en vivo Release CI Licencia

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

Resumen de NetPulse con puntuación de salud de red, gráfico de tráfico en vivo, estadísticas de AdGuard Home, peers WireGuard y el feed de alertas

Míralo antes de instalar nada

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.

Qué te llevas

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.

Mapa de topología con el gateway en el centro, tres puntos de acceso, clientes cableados e inalámbricos, un switch inferido y el túnel WireGuard a Internet

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.

Lista de dispositivos con iconos por tipo, hostname, IP, banda, intensidad de señal y el router al que está asociado cada cliente

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.

Vista de routers con tarjetas por router mostrando modelo, firmware, CPU, memoria, temperatura y uptime

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ágina luci-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 UCI mqtt_* 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.

Empieza en unos cinco minutos

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 | sh

El 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_keys

4. 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-*.apk

El 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 start

Si 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 | sh

Modo on-box. ¿Sin caja aparte? El servidor corre en el propio router OpenWrt, con config UCI y TLS autofirmado con pinning SPKI.

Actualizaciones e historial de versiones

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.

Documentación

Gracias enormes

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.

Historial de estrellas

Star History Chart

Licencia

AGPL-3.0