Возможности

Всё, что умеет видеть NetPulse

Полный список того, что мониторит приложение, и обоснование технических решений.

Инвентарь возможностей

От сети до интерфейса

NetPulse читает данные с ваших роутеров и показывает их на одном экране. Опрос только для чтения; всё, что пишет, явно и покрыто откатом.

Панель здоровья

Оценка от 0 до 100, сжимающая задержку, потери, аптайм и температуру. Рядом - живая пропускная способность WAN в сравнении с вашим тарифом, средняя задержка и подключённые устройства.

  • Оценка здоровья 0-100 с взвешенным расчётом по каждому роутеру
  • Пропускная способность WAN, пик за сегодня, среднее и итого за 24 ч
  • Живое обновление по SSE каждые ~5 с
Доступно

Живая топология

Семантическая карта, построенная из FDB бриджа и LLDP, когда он доступен. Рисует роутеры, коммутаторы, гипервизоры, вложенные контейнеры, проводных и беспроводных клиентов и туннели WireGuard. А когда вывод не может определить, куда что подключено, закрепите устройство за его точным роутером и портом вручную.

  • Вывод управляемых и предполагаемых коммутаторов
  • Гипервизоры с видимыми вложенными контейнерами
  • Анимация трафика и состояние линков
  • Режим редактирования: перетаскивайте узлы и сохраняйте свою раскладку
Доступно

Устройства

Каждый клиент автоматически классифицируется по паттернам hostname и OUI, с диапазоном, сигналом в dBm, первым появлением и роутером или портом, через который он общается.

  • Классификация по типу: компьютер, телефон, IoT, камера, консоль...
  • Диапазон (2.4 ГГц / 5 ГГц / провод) и сигнал
  • Статус онлайн/офлайн и первое появление
Доступно

Флот роутеров

Общий вид всех ваших роутеров с CPU, памятью, температурой, аптаймом, подключёнными клиентами и спарклайном нагрузки за 24 ч. Управляемые коммутаторы, опрашиваемые по SNMP, тоже полноценные участники, со своей историей трафика и клиентами.

  • Карточка на роутер с ролью (gateway / AP / switch)
  • Пауза юнита без удаления: без опроса и оповещений, история сохраняется
  • LLDP-MIB на SNMP-свитчах: настоящие аплинки без OpenWrt
Доступно

Агент и обновления

Агент - нативный пакет OpenWrt (.ipk и .apk, от mips до x86/64) с init procd, конфигом UCI и watchdog. Сервер устанавливает и обновляет весь флот из UI и меняет токены на ходу, без переустановки.

  • Установка агента из UI сервера
  • Предупреждение об устаревшем агенте и кнопка обновления
  • Повторный запуск (rearm) и статус агента в реальном времени
  • owut check: проверьте, есть ли обновление прошивки для вашего роутера
  • Обновления прошивки из UI, только ванильный OpenWrt
Доступно

WiFi и роуминг

Матрица сигнала между ТД и клиентами, события роуминга, хранящиеся 30 дней, и инструменты для перепривязки sticky-клиентов или их отключения от ТД, чтобы они выбрали лучшую.

  • События ассоциации/деассоциации и роуминга
  • Рекомендация перепривязки по сигналу
  • Миграция steering с DAWN на usteer
Доступно

Анализатор каналов Wi-Fi

Настоящий спектр для каждого радио: каждая сеть нарисована колоколом на оси частот, диапазоны DFS затенены, плюс непрерывная полоса занятости. Ваша сеть так, как её видит эфир.

  • Оценка загруженности по каналам (оптимум, средне, занято); клик, чтобы выделить
  • Собственные сети никогда не загружают канал (детект по MAC, SSID и dawn/usteer)
  • Только советует: применить канал остаётся за вами, на роутере
Доступно

Детали портов коммутатора

Вид по портам коммутаторов: согласованная скорость, трафик, ошибки, состояние линка и особые оповещения, такие как призрачный порт, flapping или деградация скорости.

  • Временные ряды трафика по портам
  • Оповещения о призрачном порте, flapping и деградации линка
  • Передняя панель коммутатора
Доступно

WireGuard

Список пиров, последние рукопожатия, передача по пирам и туннель, нарисованный на карте топологии, где каждый пир подписан своим настоящим именем из конфига UCI.

  • Статус каждого пира и время с последнего рукопожатия
  • Накопленные RX/TX по туннелю
  • Визуализация туннеля от интернета до шлюза
Доступно

AdGuard Home

Статистика DNS-запросов, доля блокировок, топ заблокированных доменов и какие клиенты используют фильтр - всё рядом с остальной сетью.

  • Запросы и блокировки за 24 ч
  • Топ заблокированных доменов
  • Средняя задержка DNS
Доступно

Оповещения

Шесть категорий со своей срочностью: температура, доступная прошивка, новое устройство, рукопожатие WireGuard, сетевой порт и события роуминга. Лента в колокольчике и уведомления Web Push.

  • Постоянная лента с автоматическим разрешением
  • Нативный Web Push через VAPID, без третьих сторон
  • Подсказки действий в оповещениях о портах
Доступно

Отчёты

Ежедневные, еженедельные и ежемесячные отчёты о доступности по роутерам и устройствам. В разработке: трафик, активность, сводка оповещений и экспорт.

  • Доступность по роутерам и устройствам
  • Виды: день, неделя и месяц
  • Экспорт CSV/JSON запланирован
Частично / в разработке

Настройки

Одна колонка с закреплённым индексом, который следует за вами при прокрутке: пользователи и роли, язык для каждого пользователя, внешний вид с реальными превью, пороги данных, роутеры, сервисы и интеграции, оркестрация и авто-обновления.

  • Пользователи с ролями и bcrypt
  • Реальный тест скорости WAN, запускаемый с сервера
  • Авто-обновление с changelog
Доступно

Демо-режим

DEMO_MODE=1 поднимает полную образцовую сеть из 67 устройств без реальных роутеров. Полезно, чтобы проверить интерфейс до установки.

  • Канонический датасет из 67 устройств
  • Тот же интерфейс, что и в реальном режиме
  • Публичное живое демо на demo.netpulse.cloudless.club
Доступно

Приложение LuCI

luci-app-netpulse встраивает статус агента прямо в веб-интерфейс OpenWrt: procd, UCI, логи, перезапуск и ссылка на основное приложение.

  • Статус агента в LuCI
  • Перезапуск и повторный запуск (rearm) агента
  • Пакет .ipk/.apk в каждом релизе
Доступно

Режим on-box

Если у вас нет отдельной машины, сервер может работать на самом роутере OpenWrt, с конфигом UCI, TLS pinning и локальным сопряжением.

  • Статический бинарник для совместимых роутеров
  • Нативный конфиг UCI
  • Самоподписанный сертификат с SPKI pinning
  • Опциональный HTTPS для UI: ваши сертификаты или самоподписанный
Доступно

ИИ-ассистент (MCP)

Встроенный MCP-сервер на /mcp: ИИ-ассистент запрашивает состояние флота, устройства, оповещения и топологию по HTTP с API-токеном. Инструменты только для чтения по последнему опросу.

  • Флот, здоровье роутеров, устройства, пиры WireGuard, AdGuard, топология и оповещения
  • Только API-токены (никогда cookie сессии), с ограничением частоты
  • Каждый вызов инструмента логируется для аудита
Доступно

Физическая стойка

Нарисуйте свою стойку 19 дюймов, расставьте роутеры, свитчи и серверы по юнитам, и NetPulse предложит кабельную разводку из обнаруженной топологии, включая аплинки между роутерами. Очень ранняя preview.

  • Стойки и монтаж с реальными юнитами и пропорциями 19 дюймов
  • Разводка предложена из FDB; импортированные кабели помечены как обнаруженные
  • Выключено по умолчанию: включается в Настройках, Labs
Labs (эксперимент)

NetPulse и Home Assistant

NetPulse публикует состояние флота в брокер MQTT, а Home Assistant обнаруживает его сам: создаёт устройства и их сущности, без ручного определения. Всё происходит в вашей локальной сети.

  • Вся установка
  • Каждый роутер отдельно
  • Управление роутером из Home Assistant
Доступно Home Assistant
Технические решения

Почему сделано именно так

NetPulse - не маркетинговый продукт: это личный инструмент, созданный для решения реальных проблем. Вот решения, которые вызывают больше всего вопросов.

Почему OpenWrt / GL.iNet?

NetPulse родился из домашней сети с четырьмя роутерами: GL.iNet Flint 2 как шлюз и три б/у Xiaomi AX6. OpenWrt позволяет прошивать, инспектировать и контролировать железо. Без этого не было бы способа читать FDB, iwinfo или события iw, питающие приложение.

Почему Go + встроенная SQLite?

Единственный статический бинарник с отключённым CGO. Не нужен C-toolchain на целевой машине, обновление атомарной заменой, а пользователи, сессии и временные ряды хранятся в локальной SQLite с WAL. modernc.org/sqlite делает его полностью статическим.

Почему опрос только для чтения?

Сервер генерирует свою пару ключей ed25519, и вы авторизуете публичный ключ на каждом роутере. После этого опрос только читает: ubus, /proc, iwinfo, bridge fdb, wg show. Действия с записью (резерв IP, блокировка устройства, оркестрация сервисов, прошивка) всегда явные, запускаются администратором и применяются со снапшотом и автоматическим откатом.

Почему systemd, а не Docker?

NetPulse мониторит сеть; контейнер для этого не нужен. Изолированный systemd-юнит с простым файлом сервиса, логами в journald и автоматическим перезапуском легче и проще в эксплуатации на небольшом LXC или VM.

Почему PWA + SSE?

Интерфейс - это SPA на React с Vite и Tailwind, устанавливаемая как PWA. Бэкенд передаёт живые события по SSE каждые ~5 с. Без постоянного опроса и WebSocket: SSE односторонний, переподключается сам и хорошо работает за домашними прокси.

Почему с DAWN на usteer?

Мы начали с DAWN для WiFi-steering, потому что это был самый заметный вариант в сообществе OpenWrt. На реальных сетях мы увидели, что он мог отклонять аутентификации цепочкой, неожиданно отключать клиентов и держать нерешённые баги в peer-to-peer модели. usteer - официальный демон OpenWrt с эквивалентными возможностями и более стабильной моделью. Миграция на usteer идёт и сохраняет ту же видимость роуминга.

Чем NetPulse не является

Важно честно говорить о границах. NetPulse не претендует быть:

  • Корпоративной NMS вроде Zabbix, LibreNMS или PRTG. Он не масштабируется до тысяч узлов и не поддерживает тысячи SNMP MIB.
  • Облачным решением. Нет телеметрии, централизованных дашбордов или нативных мобильных приложений.
  • Инструментом массовой автоматической настройки. Оркестрация есть, но она opt-in и по плану.
  • Универсальным решением для любых роутеров. Он протестирован на OpenWrt / GL.iNet; другие прошивки потребовали бы адаптации.
Внешний вид
Тема