Repository navigation
QManager BETA v0.1.10
Pre-release
Pre-release
·
1545 commits
to development-home
since this release
🚀 QManager BETA v0.1.10
NetBird VPN management, VPN inbound connectivity fix, Tailscale boot control fix, and improved uninstall process for both VPN clients.
🐛 Bug Fixes
🔒 VPN Inbound Connectivity (Tailscale & NetBird)
- 🔧 Peers could not reach the device via VPN — Both Tailscale and NetBird suffered from the same issue: the VPN interface (
tailscale0/wt0) was not assigned to any fw4 firewall zone, and mwan3 was hijacking VPN reply packets for WAN routing. - ✅ Fix: Two-part fix applied automatically on VPN install/connect/service start:
- Firewall zone — A UCI zone (
input=ACCEPT, output=ACCEPT, forward=ACCEPT) is created for the VPN interface with bidirectional forwarding to LAN. Persists across reboots. - mwan3 ipset exception — The CGNAT range
100.64.0.0/10is added to themwan3_connected_ipv4ipset so mwan3 skips marking VPN-bound traffic. Ephemeral (re-applied on every service start).
- Firewall zone — A UCI zone (
- 🔗 Shared helper library (
vpn_firewall.sh) ensures both fixes are applied/removed consistently across both VPN clients.
🔄 Tailscale Boot Toggle Not Working
- 🔧 Disabling "Start on Boot" did not prevent Tailscale from reconnecting after reboot — The
luci-app-tailscaleinit script uses a UCIenabledflag as the authoritative control, not the init.d symlink. Additionally, a procd interface trigger firesreloadon every WAN up event, bypassing the symlink entirely. - ✅ Fix: The boot toggle now sets
tailscale.@tailscale[0].enabledin UCI config (the flag the init script actually checks), in addition to the init.d enable/disable.
✨ New Features & Enhancements
🛡️ NetBird VPN Management
- 🆕 Full NetBird VPN management page at Monitoring → NetBird — Install, connect, disconnect, start/stop service, enable/disable on boot, and uninstall — all from the web UI.
- 📊 Multi-state connection card — Adapts to show the appropriate UI for each state: not installed, service stopped, disconnected, and connected. Connected state shows FQDN, NetBird IP, Management status, and Signal status.
- 🔑 Optional setup key — Enter a setup key from the NetBird dashboard when connecting, or leave empty if already registered.
- 👥 Peers card — Shows connected peer details (hostname, IP, connection type, status, last seen) when available, or a summary peer count for older NetBird versions.
🔐 VPN Mutual Exclusion
- 🆕 Only one VPN can be installed at a time — Installing Tailscale while NetBird is present (or vice versa) is blocked at the backend with a clear error message.
- 🆕 Cross-VPN awareness — Each VPN page detects if the other is installed and shows a prompt directing the user to uninstall it first.
🗑️ Improved VPN Uninstall Process
- 🆕 Uninstall section for both Tailscale and NetBird — Separated bottom section with confirmation dialog, following the established design pattern (Email Alerts, Video Optimizer).
- 🔧 Auto-stops service before removal — No need to manually stop the daemon first; the backend handles it automatically.
- 🔧 Firewall cleanup — VPN firewall zone and mwan3 ipset exception are removed on uninstall (only when the other VPN is also not installed).
- 🔄 Reboot after uninstall — A "Reboot Required" dialog appears after successful removal, offering "Reboot Now" or "Reboot Later" to clean up any remaining artifacts.
📥 Installation
Fresh Install
wget -O /tmp/qmanager-installer.sh \
https://github.com/dr-dolomite/QManager/raw/refs/heads/development-home/qmanager-installer.sh && \
sh /tmp/qmanager-installer.shUpgrading from v0.1.9
Head to System Settings → Software Update and hit "Check for Updates" — download, verify, then install with the two-step flow.
💙 Thank You
Thanks for using QManager! If you find it useful, consider supporting the project. Bug reports and feature requests are always welcome on GitHub Issues.
License: MIT + Commons Clause
Happy connecting! 📡