Two things landed this release that are worth walking through. One is for the days your server feels wedged for no obvious reason, and one is for anyone running IPTV off their box.
The first is a Writeback cleanup card on the System Dashboard. It catches a rare kernel condition that slowly grinds a busy server to a crawl, and it clears it with one click instead of a reboot. The second is native IPTVBoss support: install it from the dashboard, run it as an always-on Xtream Codes server that keeps your playlists and EPG current on its own, and route its traffic through a VPN if that is how you work.
When the box slowly wedges: Writeback cleanup
Here is the symptom this is for. Your load average creeps up over hours or days. The box still answers, nothing you're running is obviously busy, but the number keeps climbing and everything feels heavier than it should. If you look with top you find two kernel worker threads sitting near 100% of a CPU - kworker/...+inode_switch_wbs and kworker/...+events_unbound - and they don't let go.
That is a kernel cgroup-writeback cleanup livelock. When a control group dies - a service restart, a nightly restart cron, a run of updates - the kernel has to re-home every cached inode that group owned. On a box with a very large inode cache, that cleanup can get stuck: the workers spin, the backlog stops draining, and the load just sits there and grows. It is an upstream Linux 6.12 kernel regression. The proper bounded-drain fix is upstream but hasn't reached Debian yet, so until it does, you want a safe way to clear it on demand.
That's the card. It lives on the System Dashboard, in the Hardware Health panel - open the sidebar to Dashboard > System Dashboard, and Hardware Health is one of its sections. The Writeback cleanup card is admin-only and sits right there with the rest of your hardware read-out.
How to know if you need it
You don't have to go digging through top to find out. When the panel opens, the card runs a read-only check on its own and shows you a verdict:
- ●Clear - no pegged writeback workers, nothing to do.
- ●Livelock - the workers are pegged and the drain is stalled. This is the one you act on.
- ●Unsupported - the host is on cgroup v1, where this doesn't apply.
- ●Drained / Still busy - what you see right after you run the fix (below).
Under the verdict the card shows the numbers behind it: any pegged workers and how hard they're running, the dying control groups, the cached inode count, the ext4 inode cache, and the cached memory, plus a plain-language hint about what it found. There's a refresh button to re-run the check whenever you want. The whole check is read-only and safe to run any time - it looks, it doesn't touch anything.
Clearing it
When the verdict is Livelock, a Release unreferenced inodes button appears. It asks you to confirm first, and it's honest about what it does: it drops the kernel's cached copy of the inodes that no process is using so the drain can finish. Files that are open or in use are left alone. A machine that's been stuck a very long time might still need a reboot, and the release itself can take up to about 35 seconds. Once it's done, the card shows you the before-and-after - worker peak, cached inodes, dying cgroups, cached memory - along with the drain rate and an estimated time so you can see it actually moving.
The one piece of timing advice: run it early, when the workers first peg, before the backlog grows. Left to pile up, the release still finishes, it just takes longer. And never reach for echo 3 > /proc/sys/vm/drop_caches by hand or on a cron to shortcut it - the card's targeted reclaim is the safe path.
If you'd rather do it from the terminal, the card is exactly the dashboard face of qb fix writeback (the check) and qb fix writeback --apply (the fix), so both surfaces do the same thing and show the same numbers. There's a full write-up of the symptom and the fix in the writeback livelock troubleshooting guide, the card itself is documented on the System Monitoring page, and the command is in the qb fix CLI reference.
Native IPTVBoss support
IPTVBoss is an IPTV playlist and EPG manager. It pulls your sources together, sorts out the guide data, and re-serves the whole thing through a headless Xtream Codes (XC) server your players connect to. It's now a native QuickBox app, which means QuickBox handles the install, the service, the reverse proxy, and the SSL for you.
The way we run it is simple: one server-level, always-on XC Server, bound to loopback and fronted by nginx. It syncs your playlists and EPG internally on a schedule you set inside IPTVBoss - there's no separate processing job to babysit and nothing to keep open on a desktop. Your IPTVBoss license stays entirely yours: QuickBox never accepts, stores, logs, or automates a license key. You buy it from IPTVBoss and activate it in IPTVBoss's own editor.
Installing it
Installing IPTVBoss is an admin job, and it's a single install for the whole server. Open the App Dashboard, switch to the Package Management tab, find IPTVBoss in the catalog, and install it. The catalog card tells you exactly what you're getting before you commit.
If you prefer the CLI, it's qb install iptvboss -u <admin-user>, and you can add -d <domain> to issue the SSL certificate and write the subdomain vhost as part of the install. Either way, the full walkthrough - including the DNS-challenge options for a wildcard certificate - is on the IPTVBoss documentation page.
Managing it from the dashboard
Once it's installed, IPTVBoss shows up as a row on the App Dashboard like every other app - same status, version, port, and start/stop/restart controls. Expand the row and you get an XC Server tab built for it.
From here you can apply and reload after a settings change, see the XC endpoint and its SSL status (with a link straight to SSL Control to manage it), open a desktop session to reach the editor, read the logs, and back up or restore the whole install. One thing worth being clear about: the SSL subdomain is the XC Server endpoint - the address your IPTV clients and players connect to for the Xtream Codes service - not a web page for the app. The actual management of IPTVBoss (playlists, EPG, sources, and licensing) happens in IPTVBoss's own graphical editor, which you reach over a desktop remote like noVNC or x2go. Once you've attached a subdomain, the XC Server's own web Server Console is available too.
Seeing what it's doing
The second tab, Recent Sync, is where you watch it work. It shows when it last synced and when it's due next, and a per-source log of what actually came through on the last run - each playlist and guide source, the M3U writes, the layouts - so you can confirm a source at a glance instead of digging through log files.
This view is read-only - the schedule itself lives with IPTVBoss (set it in the desktop editor, or the Server Console once you have a subdomain), so it keeps running whether or not anyone's signed in to the dashboard. The full picture, including the Server Console, backups, and updates, is on the IPTVBoss docs page.
Route it through a VPN
If you'd rather IPTVBoss reach its sources through a VPN, you can, without putting the rest of your server on that tunnel. That's what app-scoped routing on the VPN Control page (System > VPN Control) is for. You pick an app, choose a WireGuard peer or an OpenVPN client tunnel as the backend, and enable routing - QuickBox runs that app inside its own private network namespace so only its traffic exits through the VPN. There's a kill switch to cut the app off entirely if the tunnel drops, and live stats so you can confirm traffic is actually flowing where you expect.
Because the app runs server-side in that namespace, the exit location is the app's, not your device's - and your inbound access doesn't change. Your players still reach the XC subdomain exactly as before; it's only IPTVBoss's own outbound sync fetches that move onto the VPN. IPTVBoss is one of the apps you can route this way, alongside Dispatcharr, Emby, Jellyfin, Plex, and qBittorrent. The setup, kill-switch behavior, and the live metrics are all covered on the VPN Control page.
The short version
If your server has ever slowly wedged itself and you couldn't say why, check the Writeback cleanup card the next time it happens - it'll tell you in one glance whether that's what you're looking at, and clear it without a reboot. And if you run IPTV, IPTVBoss is now a first-class app you can stand up from the dashboard in a few minutes. As always, if something reads wrong or gets in your way, tell us - that's how both of these got built.
