A lightweight single-script LuCI app for qosify on OpenWrt.
Adds a Network → qosify page with five tabs:
Overview — Service status (running/active detection), Quick Settings form for all WAN interface options, config file validation with timestamps, and start/stop/restart/enable controls.
Good job, thank you very much for your time.
I would like to be able to test your work, but at the moment I am using DSCPCLASSIFY 2.0 and I am satisfied with the results.
v2.0 is out — the biggest update since initial release.
Quick Settings on the Overview tab lets you edit all WAN interface options (bandwidth, overhead, queue mode, NAT, host isolate, CAKE options) and enable/disable QoS without touching raw config.
QoS Active indicator next to the enable checkbox — shows whether qosify is actually shaping traffic, not just running.
Quick Add Rules on the Classification Rules tab — pick type (tcp/udp/dns), enter a port or pattern, select a class from a dropdown populated from your config, and append. Input validation catches mistakes before they hit the rules file.
DSCP class reference — collapsible panel showing your defined classes with ingress/egress DSCP codes. Default/fallback classes are excluded automatically.
Other improvements:
Config file validation with size and last-modified timestamps
Unsaved changes warning on Config and Rules tabs
Backup download buttons on Advanced tab
Auto-refresh on Overview (30s) and Status (5s)
Confirm dialogs on all save/upload/reset actions
Option name normalisation prevents duplicates when mixing Quick Settings with uploaded configs
Big release — rewrite from the legacy Lua controller + .htm template architecture to the modern client-side JS LuCI view. Same five tabs, same install command, same single-script installer, but underneath it's now built the way official LuCI apps like luci-app-firewall ship.
What's different
No more luci-compat dependency — only luci-base is needed
File uploads handled client-side, no more CSRF / multipart POST issues
UCI accessed via the proper JS API, no more text parsing
Service controls via ubus call luci setInitAction
Save / Upload / Reset wait for qosify to come back up before refreshing the UI
Quick Settings, Service Controls and Service Status all refresh after save/upload/reset — no stale form fields or buttons
Polling auto-refresh via LuCI's poll module (Status 5 s, Overview 30 s, pauses when tab is hidden)
What stayed the same
Same five tabs (Overview, Config, Classification Rules, Advanced, Status), same Quick Settings form, same Quick Add Config / Quick Add Rule builders, same WAN-disabled-by-default for safe first-run, same single shell-script installer, still POSIX sh / BusyBox ash compatible.
Upgrading from v2.2: installer cleans up the old /usr/lib/lua/luci/controller/qosify.lua and friends automatically. Hard-refresh the browser (Ctrl-F5) after install to pick up the new JS.
One question for update/upgrade of OpenWrt over owut or attended sysupgrade. What is the best way to update/upgrade the OpenWrt system due to that this app is not in the OpenWrt repo?
I just would just run the install again, firstly save / download your qosify config and 00-default files and just upload them via the luci-app once its installed.
Connections tab: Not worth adding. qosify doesn't expose per-connection DSCP state, so the best we could do is guess based on your rules — which you can already read yourself. No real value.
Config tab question: No, you don't need to change anything in Config. Adding the rule in Rules tab is enough.
Sysupgrade survival: writes /lib/upgrade/keep.d/luci-app-qosify for configs, copies installer to /root/qosify-luci.sh; ACL grants /usr/sbin/tc exec; uninstall cleans both up
luci‑app‑qosify can offer improvements over the regular LuCI SQM QoS app — but only in situations where qosify itself provides benefits. If your traffic or connection doesn’t make use of qosify’s DSCP marking or per‑app classification, then it will behave the same as SQM or QoSMate.
Why:
SQM is a shaper (CAKE) with basic built‑in heuristics.
qosify is a classifier (eBPF DSCP marking) that feeds CAKE better metadata.
luci‑app‑qosify just provides a GUI for qosify — it doesn’t change how qosify works.