u/MrJimBusiness-

Network Optimizer: Be Your Own NOC

9 months since launch, over a year since conception, over 1000 GitHub stars, almost 4200 squashed commits (tens of thousands pre-squash), and over 3000 hours of coding and R&D from me, not counting numerous community contributions, this is Network Optimizer today.

With UniFi Network transitioning to yet another major release and moving stuff around again, I wanted to recap some of what Network Optimizer can do at a kind of basic level. This is just scratching the surface, but it may spark some ideas for how it would be useful on your network. You can count on it to remain a stable user experience and feature set without having the rug pulled on where to find everything every minor or major release.

Coming soon too is a fully hosted offering for those without home servers. Network Optimizer takes a bit of horsepower to run all features, so I'll be dedicating some pretty beefy hardware to let people have a nice seamless and also extremely secure experience. The on-Gateway agent lets you deploy it to any site and connect it up to either our hosted or your self-hosted Server without a VPN or site-to-site tunnel. No public site IP required.

Here's a full index of everything it can do: https://github.com/Ozark-Connect/NetworkOptimizer/blob/main/FEATURES.md

If you have any questions about what else it can do, please hit me up below. If you're interested in a live demo every month or so, reply to my comment too with any ideas or just a show of interest. I'll probably start a Discord server as the project continues to grow so people can get help, ask questions, post ideas outside of GitHub Issues, and then meet up to check out or test / debug new features.

Here's the project repo: https://github.com/Ozark-Connect/NetworkOptimizer

Installation guides and everything are available from the README, quick links at the top. Linux bare metal or Docker, Proxmox (our LXC script recommended as the community script is out-of-date), macOS, and Windows all supported. A couple NAS integrations exist as well. Somebody even has a Home Assistant plugin for it!

With 1000+ stars on GitHub (hell yeah!) and deployment to a boatload of home and even biz/commercial networks, I'm here for the long haul and want to add in any quality of life features that people find useful. Thanks for all of the support!

(BTW if you point your favorite agentic tool at the repo, you can quickly find out if it can solve a particular need or problem for you, the feature set is a little overwhelming. Feel free to audit the code base and let me know of any security concerns, but I think you'll find it's very hardened at this point.)

And if you use NO already, please drop me a line below, let me know the feature(s) you use most often and why they're useful to you. Give me your number 1 want or need too, and I'll try to make it happen! I'm churning through the GitHub Issues backlog and should get to everything by year's end.

u/MrJimBusiness- — 8 days ago
▲ 13 r/UNIFI

UniFi OS Server - Dockerized Fork

Just a heads up for anybody running UniFi OS Server standalone, I've been maintaining a fork of lemker's unifi-os-server Dockerized/k8s repo and have been keeping it up with EA, RC, and GA releases. Up to 5.1.37 are available here if you need it: https://github.com/Ozark-Connect/unifi-os-server

I decided to fork because I wanted to keep the release versions in lockstep with the Ubiquiti version numbers as it's just easier for people to figure out, and I noticed EA releases weren't getting picked up at all, and GA releases are slow to get picked up. I'm usually on top of it within a couple hours of announcement.

Just swap your unifi-os-server docker image out if you want to track my fork images: ghcr.io/ozark-connect/unifi-os-server:5.1.37 or :latest to stay on RC/GA builds, or if there's an EA release you want to run use its tag ghcr.io/ozark-connect/unifi-os-server:5.1.34-ea

u/MrJimBusiness- — 2 months ago

Intelligent firmware upgrade orchestration - new Network Optimizer feature

Hey everybody, it's been a while since I've posted about Network Optimizer, but I figured this feature could help a lot of people out there with time-savings and less stress around firmware upgrades, especially on larger networks.

The spec list I had going into implementation on this feature was absolutely massive, but I'll touch on some of what makes this useful:

  • Autopilot mode automates every firmware upgrade going forward as releases become available
  • Custom tailor which devices, device models, or device types get EA, RC, or Official/GA releases. Exclude certain devices/models altogether to hold them back on older firmware.
  • Topology-based rollout plan, leaf devices first, APs planned out to make sure coverage is maintained.
  • Proposes an upgrade window based upon your network's real WAN and LAN usage. Autopilot mode assesses this ahead of time and adjusts for each auto upgrade it plans.
  • Autopilot notifies you in advance to let you postpone or clear an upgrade.
  • See how it'll go down and how long it'll take before you schedule it (see demo video above).
  • Upgrade roll out establishes waves and canary devices of the same model/SKU to prevent problematic firmware from rolling out to other same devices. If anything goes unexpectedly, it withdraws the same model devices from the rest of the roll out.
  • Actually makes sure the device did upgrade and took the intended firmware version
  • Takes a snapshot of device CPU/mem/packet loss stats (with Network Optimizer SNMP monitoring being recommended for more detailed and actively polled stats) before the device is upgraded, and compares after, both sending alerts if there was a change/regression in the resource profile (like if there's a clear memory leak, CPU usage that doesn't stay down after the upgrade settles, or packet loss characteristics changing on the device's management interface).
  • Shows you a real-time 2D topology map view (preview shown in the video) as the firmware upgrade rolls out to your whole network.
  • Gives a report a couple hours after the upgrade is concluded, listing which devices upgraded, how their CPU/mem went down or up compared before and after the soak.

This is probably the first truly mutative NO feature that mucks around in UniFi Network / Console settings in order to do things properly and hit the release versions you confirm per device, along with actually triggering the updates... so I do need some help testing. As such, I've held this back on a preview release (https://github.com/Ozark-Connect/NetworkOptimizer/releases/tag/v2.7.0-preview1)

If you want to read more about the Firmware Rollout features and logic see: https://github.com/Ozark-Connect/NetworkOptimizer/pull/1140 (heads up, my PR bodies are Claude generated and I don't really bother editing them like Release Notes or hand-writing them like this post, and Opus 5 sucks at writing concisely, so just be warned)

As always, thanks for running Network Optimizer and let me know if there's anything you need help with!

u/MrJimBusiness- — 2 months ago
▲ 140 r/corgi

What a dork

I love this little chonk. I can't believe he's 5 now! Time flies...

u/MrJimBusiness- — 4 months ago
▲ 256 r/Ubiquiti

New to Network Optimizer - ISP Health and ONT/Modem Monitoring

Thanks to a bunch of folks helping test these new features on their own sites, and also a few great community code contributions, I've now got some pretty in-depth ISP / access layer monitoring for your UniFi Network as one of the core features in Network Optimizer.

Also, we're at over 300,000 Docker image pulls now! Great motivation to keep this project going and alive with new features.

- Live WAN stats w/ down and up speeds, packet loss, and RTT
- Guided discovery of your ISP's access layer technology and access + aggregation + border topology, w/ ongoing performance monitoring
- Enumerates your ISP's upstream transit providers and automatically suggests ICMP monitoring targets
- Stores time-series SNMP-polled stats for WAN interfaces and selected upstream targets for the ISP Health analysis shown above, including latency, packet loss, loaded latency (bufferbloat), loaded loss, transit congestion, access layer congestion, transit path shifts (not scored), and more.
- Keep track of your internet performance without having to run bufferbloat, speed test, etc tests manually. This IMO is the really valuable part of this. Having ammo for ISP accountability is a major benefit of these new features, especially if you have an SLA.
- Existing Network Optimizer speed test results are pulled in for scoring vs expected plan speeds
- Monitoring of popular SFP ONTs, external ONTs / RGs (including AT&T), cable modems, UniFi and 3rd party 5G/LTE modems, and even BiDi modules used for Active Ethernet/P2P fiber. Includes a configurable dashboard view w/ the latest data and time series graphs as well. Coming soon: correlation of WAN performance events w/ hardware stat changes.
- Alerts and alarms for hardware stat degradation, with more on the way
- Time series data is kept in InfluxDB w/ long-term and 90-day retention by default
- Custom views in Grafana are supported w/ Flux queries

Some other features shown include the enhanced 2D topology view w/ bidirectional traffic flows, live throughput labels, and tooltips with live device stats.

Multi-WAN interface stats are recorded as available, but I'm still working out whether it's more feasible to have people deploy a lightweight Go monitoring agent on their gateway, or set up PBRs to configured monitoring targets. The IPQ and Annapurna gateways are stretched thin as it is, so I'm still mulling this over.

Find it here: https://github.com/Ozark-Connect/NetworkOptimizer

My background and coding standards: https://github.com/Ozark-Connect/NetworkOptimizer/blob/main/CODING_STANDARDS.md

I hope you enjoy using NO and find it useful, please don't hesitate to DM me if you need anything or have any suggestions!

(Also, Network Optimizer is still really UniFi-centric, but if anybody else out there wants to tackle hybrid or other popular prosumer and SMB network brands, LMK. That's something I'll want to tackle over the next few months.)

u/MrJimBusiness- — 4 months ago
▲ 418 r/Breadit

Her first bread ever... So proud!

My spouse made her first bread ever... This bomb focaccia today. It's fantastic. How does it look? I literally know nothing about bread except from watching GBBO.

I'm gonna get in trouble if I finish eating the whole thing but I just damn well might.

u/MrJimBusiness- — 5 months ago

Self-hosted UniFi monitoring system

Over a year in the works, I just wrapped up adding full time-series network monitoring to Network Optimizer. Here are the main features:

  • Ping / RTT measurement across multiple different kinds of targets at different cadences
  • Real-time 3D view of both LAN and WAN traffic across all devices on your UniFi Network
  • CPU / mem / temperature (gateway only so far) stats collected and plotted
  • Auto-discovery of your ISP's access and aggregation infrastructure, and their upstream transit network(s) for suitable monitoring targets
  • Built in monitoring targets for common CDN/internet service providers
  • SFP/ONT optical power monitoring with GPON vs XGS-PON auto-detection (covers most common SFP stick modules from FiberMall, Zyxel, Nokia, Leox, Calix, ODI, SourcePhotonics, etc.)

Some caveats:

  • Wi-Fi device transfer rates are laggy since we can't really pull per-wireless-device data w/ SNMP, it relies on UniFi Network endpoints that really only refresh data every 30 sec
  • Up to 250 MB per day on big home networks required in InfluxDB storage, I wouldn't run the InfluxDB server on a R-Pi or anything embedded
  • Don't leave up the 3D live view on your phone, it will drain your battery pretty well
  • Does generate some extra network traffic about 500 Kbps with 10 UniFi Network devices and 25 ping targets, and a portion of that over WAN
  • I still have a bunch of work left to do to bring the diagnostic capabilities of all of this data full circle, but you can easily build a Grafana dashboard to dive into the InfluxDB data however you'd like
  • Doesn't use UnPoller, this is based on my own .net based SNMP polling library I've been working on and have had in production for 13 months now over several iterations
  • I've tested the impact of the SNMP polling for over a year, and my network hasn't skipped a beat now that I have it fully optimized. The setup process walks you through enabling SNMP and encourages you to use SNMP v1/2c and NOT SNMP v3. I highly advise against using SNMP v3 (crypto overhead on both ends for every polling event) and instead locking down your management VLAN and using an obfuscated community string. The setup wizard walks you through these things and SNMP of course is just read-only stats of your network fabric devices, so no worries.
  • InfluxDB chosen for my own preference, simplicity, flexibility, and its nice query language. Prometheus support could be added, but InfluxDB is pretty lightweight if you want to run both.

Available here: https://github.com/Ozark-Connect/NetworkOptimizer Deployment guide: https://github.com/Ozark-Connect/NetworkOptimizer/blob/main/docker/DEPLOYMENT.md

Make sure to take in all of the other Network Optimizer features while you're in there... there's a lot.

Please feel free to DM me if you need anything!

u/MrJimBusiness- — 5 months ago
▲ 214 r/Ubiquiti

UCG-Fiber performance tweaks (including 2.5 gig SFP support)

Got these tested well enough thanks to a bunch of folks here, went ahead and added a deployment system to Network Optimizer for the following performance tweaks for the UCG-Fiber / UXG-Fiber, with more to come.

  • SSD offload of UniFi Network's MongoDB (reduces eMMC write wear and load and gets UniFi Network a little snappier)
    • Should work fine on UCG-Max too
  • SFP+ 2 (Port 7) SGMII+ / HSGMII 2.5 gig support (for GPON ONT SFP and MoCA SFP users)
    • Port 6 support can be added soon, I just need somebody to collab and test it for me since I repurposed my UCG-Fiber lab gateway
  • Fan / temp control - light recalibration of the factory params (instead of a whole script that manages it)
    • This should work fine on UCG-Max as well, but looking for confirmation
  • Bypassing eMMC writing of system logs (mostly to reduce eMMC load and wear)
    • Same here, just need somebody to test on UCG-Max

I've confirmed compatibility with all of the current Official, RC, and EA releases of Network and UniFi OS on a few gateways, and testers have helped with additional testing and feedback (thanks guys!).

Still, disclaimer, YMMV, please follow the cautionary items before deploying these scripts/patches. Always backup and ensure you're ready to factory restore before applying any customization like this to your gateway.

Full background on the tweaks, with their evolution and research/lab work: https://github.com/Ozark-Connect/unifi-perf-tweaks
Network Optimizer can be found here, self hosted, free for personal use: https://github.com/Ozark-Connect/NetworkOptimizer

edit: some screenshots since the video quality is shite https://imgur.com/a/AI9LRAx

edit 2: SFP+ 1 (Port 6) support is up on Network Optimizer now https://github.com/Ozark-Connect/NetworkOptimizer/releases/tag/v1.16.2

u/MrJimBusiness- — 5 months ago

Just took a bit of ghidra work, and a cross compiled custom module for the IPQ PHY stack but I got 2500 Mbps SFP (SGMII+) working on the UXG-Fiber / UCG-Fiber. Stable for about 16 hours now, to be enhanced with a watchdog and such soon. I'll add it to my UniFi performance tweaks GitHub Repo. Just DM me with a summary of how you'll be using this, your GitHub username, which SFP port you need to bump the speed up on, and that you won't yell at me if this firmware mod bricks your gateway, and I'll send you an invite to the repo.

The good news is this would be like a 10 line code fix on the firmware side, maybe 200 lines max in UniFi Network and the management plane, for Ubiquiti to add official support for SFP 2.5 gig to the IPQ gateways. I'd encourage to keep bugging them about it. It seems to work at the firmware and hardware level just fine with minimal changes. It's fully supported by the Qualcomm IPQ SSDK it just needs to be coded for.

For me, this cleared up a ton of TX drops (egress to the host gateway, download direction) on my SFP GPON ONT due to the 1 gig physical interface being a bottleneck for GPON bursts and there being very little frame buffer on the stick. Was getting about 1.5-2% loss which was devasting to CUBIC sending downloads and just consistent downstream performance in general.

u/MrJimBusiness- — 6 months ago