Skip to content

57/unifidash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

unifidash

PowerShell UniFi License Platform

Real-time network monitoring dashboard leveraging UniFi Controller's private undocumented REST API endpoints for comprehensive telemetry aggregation and performance analytics.


Architecture

wags tail Built this because I wanted better visibility into my network infrastructure. This interfaces directly with Ubiquiti's undocumented controller API, bypassing the traditional web interface to extract raw telemetry data from multiple subsystems. The application implements parallel data collection across authentication, system statistics, device enumeration, client tracking, DPI analytics, and health monitoring endpoints.

Core data flows include authenticated session management with CSRF token handling, JSON deserialization pipelines, and real-time bandwidth calculation w/ asynchronous coroutines. The system aggregates monthly usage statistics through direct DPI subsystem queries (I didn't manage to find a better endpoint for this, sorry) with refresh rates via ws-like persistent connections. Had to implement custom HMAC validation and session fingerprinting >< woof

Implementation

Sorry for linux users, this leverages pwsh's native HTTP client with custom session persistence, connection pooling, and SSL certificate validation bypass (since unifi uses a self cert locally).

Tried optimizing performance (if like me you actually use this script with a cron job for other tasks) with concurrent API calls with exponential backoff retry logic, intelligent data caching using LRU eviction policies to minimize controller load, and streamlined object creation with memory pooling for large client datasets. proud puppy noises Did my absolute best to make it enterprise-grade performant~ wwwrf,,

Installation

Run the installer with administrator privileges:
Run this inside an elevated shell if you don't have sudo installed.

sudo .\install.ps1

This creates a system-wide installation and adds it to your PATH and registry. Since this is a powershell script we use a command wrapper using PowerShell manifest.
Uninstall with .\install.ps1 -Uninstall if needed :(

Configuration

Edit the configuration hash table in the installed script:

$Config = @{
    IP       = "192.168.1.1"
    Username = "admin"
    Password = "password"
}

Remember to feed it your actual credentials. Create a local user on your unifi dashboard and use those creds. Don't use your unifi SSO credentials.

Usage

Execute from any terminal:

unifidash
UniFi-Dash Dashboard

The application will authenticate against the controller using secure token exchange protocols, enumerate all network devices with parallel topology discovery, collect real-time statistics via optimized polling algorithms, and render a comprehensive dashboard. wags tail

API Coverage

Feature Description
🔐 Authentication Session management with cryptographic validation
📊 System Info Hardware statistics with thermal monitoring
🌐 Device Enum Status monitoring using SNMP-like protocols
📈 Client Tracking Real-time throughput calculation and QoS analysis
🔍 DPI Analytics Machine learning application classification
❤️ Health Monitor WAN, LAN, wireless subsystems with anomaly detection
📉 Usage Analytics Time-series analysis and trend prediction
Speed Tests Jitter analysis and performance benchmarking

Requirements

PowerShell 5.1+ with network access to UniFi Express controller and elevated execution policies for enterprise security compliance.

Administrator privileges required for system installation and registry modifications.

Pwease be gentle with your network access, this dashboard is very sensitive and needs lots of pets :3


Made with ❤️ and on a lot of drugs

About

unifi cli leveraging private gateway apis for network telemetry, DPI, and topology

Topics

Resources

License

Stars

Watchers

Forks