LuCI app for qosify (luci-app-qosify) **Current Ver 2.5.2*

luci-app-qosify

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.

  • Config — Inline editor for /etc/config/qosify (UCI classes, interfaces, queue options).

  • Classification Rules — Inline editor for /etc/qosify/00-defaults.conf with Quick Add rule form (port/DNS by class) and dynamic DSCP class reference.

  • Advanced — Backup/download current configs, upload replacements, or reset to defaults.

  • Status — Live qosify-status output with 5-second auto-refresh.

Features

  • Single shell script installs everything — one controller, one template, two config files.

  • Quick Settings — edit bandwidth, overhead, queue mode, NAT, host isolate, CAKE options, and enable/disable QoS without touching raw config.

  • Active detection — distinguishes qosify process running from actually shaping traffic via qosify-status.

  • Quick Add Rules — append port/DNS classification rules by selecting type, value, and class from dropdowns populated from your config.

  • Dynamic DSCP class reference — auto-populated from your config class entries with ingress/egress DSCP codes.

  • Unsaved changes warning — prompts before leaving Config or Rules tabs with unsaved edits.

  • Config file validation — shows Valid/Invalid/Missing status with file size and last-modified timestamp.

  • Auto-refresh — Overview refreshes service status every 30s; Status tab refreshes every 5s.

  • Backup downloads — download current config files before uploading or resetting.

  • Auto-installs qosify via opkg or apk if not present.

  • Ships with QoS disabled by default for safe first-run.

  • Server-side upload validation (rejects empty, oversized, or binary files).

  • Full uninstall cleans up tc qdiscs, ifb devices, configs, and LuCI cache.

  • Ash-compatible, no bash required.

Install

wget -O /root/qosify-luci.sh https://raw.githubusercontent.com/choppyc79/luci-app-qosify/main/qosify-luci.sh
chmod +x /root/qosify-luci.sh
/root/qosify-luci.sh install

Uninstall

/root/qosify-luci.sh uninstall

Removes qosify, all config files, and the LuCI app.

Links

Feedback and suggestions welcome.

7 Likes

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.

Good job

1 Like

No problems, if you do get time, please do. Any feedback is always helpful :+1:

1 Like

For now the only feedback i can give is if you have some screenshots of the grafical interface in you github

1 Like

Hi! I'm happy that my friend Dopam-IT_1987 inspired you. Wishing you all the best going forward.

I also use his script and his geofilter. he work fine for me

Added some Screenshots, Thanks

1 Like

This script have a gitrepository.

luci-app-qosify v2.0

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

Install or upgrade:

sh

wget -O /root/qosify-luci.sh https://raw.githubusercontent.com/choppyc79/luci-app-qosify/main/qosify-luci.sh
chmod +x /root/qosify-luci.sh
/root/qosify-luci.sh install

GitHub: https://github.com/choppyc79/luci-app-qosify

Feedback welcome.

2 Likes

luci-app-qosify v2.3.2

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
  • Notifications auto-dismiss (info 5 s, warning 8 s, danger 10 s)
  • 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.

Install / Update

wget -O /root/qosify-luci.sh https://raw.githubusercontent.com/choppyc79/luci-app-qosify/main/qosify-luci.sh
chmod +x /root/qosify-luci.sh
/root/qosify-luci.sh install

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.

GitHub: https://github.com/choppyc79/luci-app-qosify

Feedback welcome.

4 Likes

Easy steps and UI is fast. So far loving it. I'm testing more fiddling with the configs.

Glad you like it :slight_smile: :+1:

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.

When i get some time will have a look and see if i can add functionality for this.

a good feature would be a connections tab like qosmate. to see if certain dscp markings are being applied to ports/ips.

also, if i set a classification rule on a specific port for voice dscp with priority, do i also need to change anything in 'Config' tab?

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.

Small Update -

v2.3.3

  • Added VA and DF to DSCP list

  • countRules strips at first # to match daemon's inline-comment handling

  • Upload rule validator: same inline-comment fix

  • IPv4/IPv6 Quick Add: reject CIDR (daemon uses inet_pton)

  • Defaults Quick Add dscp_* selects: offer class names alongside DSCP codepoints

  • 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

wget -O /root/qosify-luci.sh https://raw.githubusercontent.com/choppyc79/luci-app-qosify/main/qosify-luci.sh
chmod +x /root/qosify-luci.sh
/root/qosify-luci.sh install
1 Like

could this app have any improvement over the regular Luci SQM QoS?

I didn't see any difference whatsoever vs the QoSMate

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.

2 Likes

what is the actual Overhead type that I need to pick when is my openwrt one router conencted to a Fiber modem that is in bridge mode?

Ethernet 44 mpu 84?