Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

UnifiOptimizer

UnifiOptimizer es un motor de incidentes para redes UniFi que preserva el historial de métricas descartado por el controlador, detecta problemas raíz y propone arreglos reversibles.

Ficha actualizada 23 sept 2026, 22:48 · upstream 23 sept 2026, 22:23 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es UnifiOptimizer

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

La herramienta actúa como un proceso Python único que ejecuta un colector, un motor de detección y un rastreador de ciclo de vida de incidentes sobre la misma bucle de eventos. Recoge estadísticas de dispositivos y clientes cada 60 segundos vía REST API del controlador UniFi, escucha el WebSocket de eventos en tiempo real y realiza sondas DNS/ICMP para obtener precisión temporal que el controlador no reporta. Todo los datos se almacenan localmente en una base de datos SQLite (data/netadmin.db) con modo WAL, permitiendo análisis históricos más allá del límite de un día del controlador nativo.

CASOS DE USO
  • Monitoreo histórico de redes UniFi más allá del límite de un día del controlador
  • Diagnóstico de causa raíz con exclusión de falsos positivos mediante comprobaciones de confusión
  • Integración con modelos de lenguaje vía servidor MCP para análisis de incidentes
  • Generación de alertas en Discord, Slack o ntfy según severidad
  • Integración opcional con Home Assistant vía MQTT para automatización
  • Propuesta y reversión segura de arreglos de configuración (planos de canales, potencia)
PUNTOS DESTACADOS
  • Almacena todo el historial de métricas en SQLite local, evitando la amnesia del controlador UniFi
  • Detección basada en reglas deterministas con verificación de confusores para evitar falsas alarmas
  • Ciclo de vida completo de incidentes con estados trazables (pending, active, resolving)
  • Servidor MCP read-only que permite consultar el historial a LLMs sin exponer credenciales
  • Puntuación de salud SLE transparente donde cada minuto fallido se atribuye a una causa específica
  • Arreglos reversibles con aprobación explícita y ventana de verificación automática
PRECAUCIONES
  • Dependencia del controlador UniFi para la recolección de métricas vía REST API
  • No incluye TLS nativo en el servidor MCP, requiriendo proxy inverso para entornos públicos
  • Requiere Python instalado (pip) o compilación desde fuente para uso directo
  • Funcionalidad limitada a redes UniFi, no soporta otros fabricantes de hardware de red
  • El almacenamiento local SQLite puede crecer con el tiempo y requiere gestión manual de datos antiguos
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

An issue detail page showing a resolved channel-plan issue with its evidence, the confounders that were ruled out, the lifecycle trail from detected through escalated, fix proposedThe issues list: fifteen findings ranked by severity, each with its state (active or resolving), the detector that raised it (port flapping, weak mesh backhaul, DNS slow, sticky clThe exported assessment's executive summary: an overall health score, findings counted by severity, and the highest-impact findings in plain language with the client-hours each oneThe UnifiOptimizer first-run screen in dark mode: a "Connect your network" heading, a controller-address field with a "Scan my network" option, a "Detect" button, and a note that tA walkthrough: the dashboard with an 87/100 health score and six service-level trends, the tracked issue list, then one issue opened to show its evidence, the confounders that wereHow UnifiOptimizer watches: the UniFi controller feeds a 60-second collector and DNS/ICMP probes; everything lands in one SQLite store that rolls up hourly then daily; detectors anThe life of an issue: many repeated findings collapse into one fingerprint that moves through pending, active, resolving, and resolved. A refire within a day reopens the same row, Health as user-minutes: each active client-minute is judged pass or fail, each failed minute is pinned to one cause on one device, and an idle client with bad signal contributes ze
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

Instalar vía pip install unifioptimizer o construir desde fuente. Ejecutar netadmin daemon apuntando a la base de datos local. Configurar alertas en data/config.yaml y credenciales en data/secrets.env. Para integración con LLMs, usar el servidor MCP (netadmin-mcp) con token seguro. El servicio corre como un único proceso Python con interfaz web en puerto 8765.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsReactNode.jsFastAPIPython
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
87658000
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.