Skip to content

Latest commit

 

History

373 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WrtMonitor

Copyright (c) 2026 Alexandr Kovalenko. Лицензия проекта: Apache License 2.0. Сторонние компоненты сохраняют собственные лицензии.

WrtMonitor - self-hosted контроллер OpenWrt для дома, homelab и небольших сетей. Один Web UI и Android-приложение показывают состояние нескольких роутеров и позволяют управлять ими, включая удалённые устройства через исходящее соединение агента. Облако производителя и входящие порты на роутере не нужны.

Self-hosted · Web UI · Android · Несколько роутеров · Исходящий агент · Без vendor cloud · Docker / NAS / TrueNAS

Повседневные задачи: посмотреть клиентов и трафик, настроить Wi-Fi и гостевую сеть, проверить WAN/DNS, перезагрузить устройство, обновить пакеты, сохранить резервную копию или открыть Web SSH. Изменения конфигурации проходят проверки результата; для предусмотренных контрактом операций есть backup и rollback. Это не гарантия восстановления после любой аварии или ошибки прошивки.

Для кого WrtMonitor

Один владелец и небольшая сеть, ориентировочно 1–20 OpenWrt-устройств: дом, homelab, небольшой офис, дача, роутеры родственников или несколько удалённых объектов. Это целевой сценарий, не подтверждённый нагрузочным тестом предел в 20 устройств.

Модель single-owner выбрана сознательно. WrtMonitor не является ISP ACS, enterprise NMS или multi-tenant controller и не заменяет OpenWISP для большой организации.

Вместо переключения между несколькими LuCI здесь общий список устройств, мониторинг, история операций и мобильный клиент. LuCI остаётся полезным для специфичных настроек, SSH - для ручной диагностики. Сравнение с LuCI, SSH/Ansible и OpenWISP.

С чего начать

Нужны сервер с Docker Compose или NAS/TrueNAS с Docker, PostgreSQL 16, OpenWrt с root-доступом для установки агента и исходящим доступом к серверу. Для удалённого доступа нужен HTTPS и корректный сертификат; Android требует Android 8.0+.

Quick Start: от установки до первой telemetry · Проверенное оборудование · Поддерживаемые функции

Текущая версия

1.0.1 - исправление отображения обновлений после первого публичного выпуска. Файлы релиза, исправление и проверки, границы публичного выпуска. Версионированные базы обновляются миграциями без пересоздания; границы совместимости и порядок восстановления описаны в правилах обновления.

В 1.0.1 Web и Android больше не называют старую версию обновлением и не показывают штатную блокировку отката как аварию. Защита от downgrade и проверки подписей сохранены. Чистая установка не требуется.

Основа публичного выпуска 1.0.0:

  • оформлена Apache License 2.0;
  • публичные отчёты ограничены разрешёнными полями, без конфигурационных секретов;
  • усилены проверки JWT, архивов восстановления и временных файлов backup;
  • выпуск получает подписанный inventory с версиями и digest контейнера;
  • исправлены проверки Wi-Fi на BusyBox и запуск коротких PTY-сессий;
  • обновлены инструкции первого запуска и границы аппаратной поддержки. Подробности в описании выпуска.

Полная история изменений: CHANGELOG.md. Матрица доступных функций: docs/supported-features.md.

Что уже есть

  • сервер FastAPI + PostgreSQL + Alembic;
  • текущая модель доступа: single-owner, без ролей и мультипользовательского режима;
  • Web UI со светлой и тёмной dashboard-темой;
  • Android-клиент;
  • OpenWrt-агент для регистрации, telemetry, очереди команд, Web SSH, diagnostics и автообновления;
  • установка через Docker Compose, VPS, домашний Linux-сервер, NAS с Docker и TrueNAS Custom App;
  • управление Wi-Fi, гостевыми сетями, профилями доступа, сетью, DHCP, системными сервисами, диагностикой и жизненным циклом агента;
  • release artifacts для сервера, агента и Android.

Интерфейс

Android

Android: обзор роутера в тёмной теме Android: клиенты домашней сети Android: состояние Wi-Fi
Обзор Клиенты Wi-Fi

Широкий экран · Настройки

Web Control Center

Актуальный WebUI на тестовом роутере браузерного прогона CI.

Обзор состояния роутера в WrtMonitor

Мобильный WebUI · Светлая тема и список роутеров

Клиенты Интернет и интерфейсы
Клиенты домашней сети Интернет и интерфейсы

Web-терминал OpenWrt

Интерактивная PTY-сессия OpenWrt через Web SSH в WrtMonitor

Быстрый старт

Полная воспроизводимая инструкция: docs/quick-start.md. Ниже только краткий порядок.

  1. Разверните сервер и PostgreSQL через Docker Compose или TrueNAS.
  2. Откройте /setup.
  3. Создайте первого администратора.
  4. Проверьте /ready.
  5. Откройте Аккаунт -> Подключить мобильное приложение, создайте QR и отсканируйте его в Android. Ручной ввод адреса и вход по паролю остаются доступны.
  6. Установите OpenWrt-агент.

Для reverse proxy указывайте внешний HTTPS-адрес:

WRTMONITOR_PUBLIC_SERVER_URL=https://monitor.example.ru
WRTMONITOR_ALLOW_INSECURE_LOCAL=false

Для локального временного теста можно включить HTTP:

WRTMONITOR_PUBLIC_SERVER_URL=http://192.168.1.10:8088
WRTMONITOR_ALLOW_INSECURE_LOCAL=true

TrueNAS

Базовый YAML лежит в deploy/truenas/wrtmonitor-truenas.yaml.

В релизе он публикуется как:

wrtmonitor-truenas-v<VERSION>.yaml

Контейнер использует:

ghcr.io/shurshick/wrtmonitor:latest

latest скачивается при redeploy через Edit -> Save, но не обновляет уже запущенный контейнер сам по себе.

OpenWrt-агент

OpenWrt-агент можно установить:

  • с GitHub Release;
  • прямо с уже развернутого сервера https://monitor.example.ru/downloads/openwrt/.

Сервер раздаёт:

  • wrtmonitor-agent
  • wrtmonitor.init
  • install-openwrt.sh
  • agent-version.txt
  • openwrt-agent-files.txt
  • SHA256SUMS.txt
  • SHA256SUMS.sig
  • lib/*.sh

Подробности:

Документация

История релизов теперь ведётся в одном месте: CHANGELOG.md. Отдельные старые промежуточные release notes больше не поддерживаются.

About

Self-hosted OpenWrt controller for home and homelab: Web UI, Android and outbound router agents. Single-owner, no vendor cloud.

Topics

Resources

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages