Release Date: December 11, 2025
Codename: Dark Horizon
Theme Song: "Paint It Black" by The Rolling Stones (optional but recommended)
Dear Fellow Server Guardians,
After countless cups of coffee, several heated debates with CSS specificity rules, and one particularly memorable 2 AM session where we discovered WHM's header was consuming 47% of our viewport (yes, we measured), we're thrilled to announce QhtLink Firewall v0.4.2 "Dark Horizon". This release represents our most significant UI/UX overhaul since the project's inception. We've listened to your feedback, squinted at your screenshots, and finally addressed the elephant in the room: why does a firewall dashboard need to share screen real estate with WHM's search bar that nobody uses anyway?
Spoiler: It doesn't. Not anymore.
The Problem We Inherited
Picture this: You're a system administrator. It's 3 AM. Something's attacking your server. You open the firewall dashboard and... you can't read anything because someone thought white text on a white background was "minimalist design."
We've all been there. Some of us wrote the code that put us there. We're not proud, but we are reformed. The Solution: Dark Horizon
Version 0.4.2 introduces what we're calling the "Dark Horizon" theme — not because it sounds cool (though it does), but because we've pushed every UI element to the horizon of readability and usability.
What Changed:
- Background: Rich gradients from #0f1419 through #1a1f2e to #141824
- Text: Calibrated #c4ccd8 that's easy on the eyes during late-night sessions
- Headers: Crisp white #fff for the important stuff
- Accents: Strategic use of blues (#60a5fa), ambers (#f59e0b), and status colors that actually mean something
- Headers: Subtle rgba backgrounds with uppercase text
- Alternating rows: Zebra striping never goes out of style
- Hover states: Gentle highlight for clarity
- Proper borders: Using rgba so they blend rather than clash
- Default: #374151 → #1f2937 (General actions)
- Primary: #3b82f6 → #2563eb (Main CTAs)
- Success: #10b981 → #059669 (Confirmations)
- Danger: #ef4444 → #dc2626 (Destructive actions)
- Warning: #f59e0b → #d97706 (Proceed with caution)
WHM's Header: A Love Letter to Wasted Space
Before v0.4.2: Your firewall dashboard started halfway down the page, like a shy guest at a party.
After v0.4.2: Full viewport domination. The firewall UI now claims its rightful territory from the very top.
How We Did It: Styles injected via modern_theme.css, loaded only on firewall pages. Navigate away, and WHM returns to normal. It’s like we were never there — except for the improved security posture. That stays.
A Bug's Life (And Death)
We had two status indicators:
- Top-right badge: Showing "Enabled"
- Dashboard card: Showing "DISABLED"
The Root Cause:
qhtlfirewall.cgi was checking for a service called qhtlfirewall that never existed. The actual daemon is qhtlwaterfall. Asking systemd about a ghost service returned nothing, so the dashboard assumed "disabled."
The Fix:
We now check everything:
- systemctl status for qhtlwaterfall
- PID files
- nftables rules
- iptables rules
- Fallback: active_rules > 0 = enabled
Manifest.json was being fetched from the wrong path. We fixed detection, added fallbacks, and ensured at least the installed version is shown. No more staring into the abyss.
Files Modified
- modern_theme.css — +280 lines of dark theme CSS, WHM header hiding
- ui/css/modern_buttons.css — Hex button flex fixes
- versions_panel.css — NEW version panel styling
- ui/js/versions_panel.js — Script base URL detection
- DisplayUI.pm — Colspan fixes, data attributes
- qhtlfirewall.cgi — Dashboard status detection rewrite
We fought the specificity war so you don’t have to. Yes, there are !important flags. No, we’re not proud. But it works.
Inline Fragment Architecture
Our AJAX‑loaded content uses a wrapper class
Code: Select all
.qhtl-inline-fragment- Clear your browser cache — cached CSS is the enemy.
- Hard refresh the WHM page — Ctrl+Shift+R (Cmd+Shift+R on Mac).
- Check the dashboard — STATUS card should now correctly show RUNNING.
- Admire the dark theme — you’ve earned it.
- Version 0.4.2 in the header
- Dashboard STATUS showing RUNNING
- Full viewport usage
- Readable text everywhere
Browser Compatibility
Tested on Firefox 115+, Chrome 120+, Safari 17+, Edge 120+.
If you’re using Internet Explorer… your browser choice is a bigger security concern than anything our firewall can help with.
Reverting Theme Changes
Remove WHM header hiding in modern_theme.css or strip .qhtl-inline-fragment rules. But give Dark Horizon a week — it grows on you.
- Coffee — The real MVP
- CSS‑Tricks — Flexbox is our friend
- Stack Overflow — Definitely not copied code (wink)
- Our users — Bug reports with screenshots and steps to reproduce = heroes
- WHM CSS team — Worthy adversaries in the specificity wars
- Real‑time traffic visualization
- Enhanced geographic blocking UI
- Custom theme support
- More dashboard widgets
- Performance optimizations
Happy Firewalling!
The QhtLink Team
P.S. — If you encounter issues, please report with:
- Browser and version
- WHM/cPanel version
- Screenshot of the issue
- Output of
Code: Select all
cat /etc/qhtlfirewall/version.txt
Version: 0.4.2 "Dark Horizon""In the depth of winter, I finally learned that within me there lay an invincible summer." — Albert Camus
SHA256: e253db92d56e53f93d67190c541fd8f5fd4313003e92a7ebad6009f65ff3a5fa
Released: December 11, 2025