System Monitoring
The System Dashboard is your real-time telemetry center for monitoring server health. It provides live metrics, historical charts, hardware inventory, diagnostic tools, and automated alert rules — all in a wide-format layout designed for at-a-glance server awareness.
The System Dashboard requires admin privileges (admin.system.dashboard permission). Navigate to it from the sidebar under Dashboard > System Dashboard.
Key features
Live Metrics
Real-time CPU, memory, swap, disk, and network utilization updated via server-sent events
Bandwidth History
Historical bandwidth charts powered by vnStat with configurable time ranges
Health Scoring
Deep-dive health cards for CPU, memory, and storage with status indicators
Quick Actions
Common system operations — memory cleanup, CPU governor, and more — accessible in one click
Software RAID
Live array status, member disk SMART health, rebuild progress, and mount point visibility for mdadm arrays
Hardware Health
Platform, CPU, and memory health at a glance — BIOS and board identity, cores, temperatures, throttling, CPU vulnerabilities, ECC memory counters, and an admin control to set the CPU power profile
Monitor Rules
Create automated alert rules for CPU, memory, and disk thresholds with configurable actions
Diagnostics
Copy a live snapshot for support, or export a redacted or full-detail diagnostics bundle
Streaming Maintenance
Run and monitor Plex Butler tasks and Emby/Jellyfin scheduled tasks from a single panel (shown when WSDashboard is enabled)
Telemetry History Store
Durable on-box metric history that keeps CPU, memory, network, and disk charts gap-free across restarts, deploys, and reinstalls
Inter-Instance Transfers
Live cockpit for transfers moving between this server and your other instances — shown when the feature is enabled (admin only)
Overview metric strip
At the top of the System Dashboard, a row of KPI tiles gives you an instant snapshot of server health:
| Metric | What it shows |
|---|---|
CPU | Current CPU utilization as a percentage |
Memory | RAM usage relative to total capacity |
Swap | Swap space usage — elevated values may indicate memory pressure |
Disk | Storage consumption for your primary mount point |
Network In | Current inbound network throughput |
Network Out | Current outbound network throughput |
These tiles update in real time. A status indicator in the page header shows whether telemetry streaming is active.
Jump to a section
The System Dashboard is a long, wide-format page, so you can jump straight to any section instead of scrolling. Two paths reach the same place:
- Quick Navigation — expand Dashboard > System Dashboard in the sidebar to list every section as a child link.
- Search palette — press
Ctrl+K(orCmd+Kon macOS) and search for a section by name, such as Service Health, Hardware Health, or Diagnostics.
Selecting either a Quick Navigation child or a search result scrolls to the section and briefly highlights it. The default child is Overview, which returns you to the top of the page — the header and the metric strip — and is also where System Dashboard lands you. As you scroll, the highlighted child follows the section you are currently viewing, in both the sidebar and the mobile menu. Sections that depend on a feature (Inter-Instance Transfers, Streaming Maintenance) or on hardware state (Software RAID, Fail2Ban Protection) appear only when that feature or state is present.
Bandwidth history
The bandwidth history section occupies the largest area of the System Dashboard. It displays time-series charts showing network throughput for your selected interface, powered by vnStat.
Key capabilities:
- Time range selection — Choose from predefined ranges or use the timeseries player controls to scrub through historical data
- Multiple interfaces — If your server has more than one network interface, select which one to chart from the command bar
- Chart interaction — Hover over data points to see exact values. The chart updates in real time when viewing the current time window
The health sidebar next to the bandwidth chart shows a compact summary of CPU, memory, and storage health with status badges.
Network topology auto-heal
vnStat keeps its tracked interface list in sync with your server automatically. When a bond, bridge, team, or VLAN-aggregate interface appears or disappears - for example, after you bond two NICs or remove a virtual bridge - vnStat re-registers the new topology on its own. You no longer need to manually drop old interfaces and add the bond before bandwidth charts start working.
If you want to force a re-sync (for example, after hand-editing vnstat.conf or rebuilding network configuration outside QuickBox), use the Rebuild interfaces button in the Network Stats panel of the System Dashboard, or run qb manage vnstat —rebuild from the CLI. See Network Tracking for the full reference on triggers, the rebuild flow, and the —status / —dry-run options.
CPU and memory panels
Below the bandwidth chart, dedicated CPU and memory panels display:
- Real-time utilization — Live-updating charts showing current CPU and memory usage
- Historical data — Time-series charts with the same range controls as the bandwidth section
- Per-core breakdown — CPU charts show individual core utilization when expanded
- Thermal data — CPU temperature readings when hardware sensors are available
Telemetry History Store
The System Dashboard keeps a durable, on-box history of your server’s metrics so the CPU, memory, network, and disk history charts stay gap-free — they survive service restarts, dashboard deploys, a full reinstall of the main database, and Redis being absent. The Telemetry History Store panel sits below the live metric charts and gives you a per-metric view of exactly how much history is preserved.
The Telemetry History Store panel is visible to administrators only. All of its data lives in a dedicated on-server database (qbpro.metrics.db) on your own machine — it is never transmitted anywhere.
Summary row
At the top of the panel, a summary row shows the total rows stored, the on-disk size of the store, the number of retention tiers, and a live health status — Active or Idle.
Metrics that are persisted
Nine system metrics are recorded into the store:
- CPU, memory, network, disk usage, disk I/O, load average, swap, GPU, and temperature.
Each metric is written by a read-only observer of the live samplers, so a storage hiccup can never interrupt live sampling, the live stream, or a dashboard request.
Tiered retention
Every sample is downsampled on write into four resolution tiers at once — a running average lives in the database, so the rollups survive a restart. Charts automatically pick the tier that fits the range you ask for, so a multi-year view reads the 1-day tier instead of millions of raw rows.
| Tier | Resolution | Retention |
|---|---|---|
Raw | Every sample as recorded | 48 hours |
1 minute | Per-minute averages | 30 days |
1 hour | Per-hour averages | 1 year |
1 day | Per-day averages | Indefinite (kept until you clear it) |
Per-metric cards
Below the summary, a grid of cards — one per metric — shows how the history for that metric is doing:
- Coverage ring — how much history is preserved toward the next retention ceiling, colored by freshness.
- Health pill — Live, Idle, Delayed, or Stale.
- Total span — the full time range of history held for the metric.
- Row count — how many samples are stored.
- What it feeds — which dashboard chart or feature the metric powers.
- Per-resolution table — Raw / 1 min / 1 hour / 1 day, each with its retention, row count, and newest sample.
Each metric feeds a specific part of the dashboard:
| Metric | Feeds |
|---|---|
CPU | CPU history chart |
Memory | Memory history chart |
Network | Network history chart |
Disk | Disk usage tile |
Disk I/O | Transfer correlation chart |
Load average | Monitor alerts |
Swap | Monitor alerts |
GPU | Streaming Dashboard |
Temperature | CPU health card |
GPU and temperature cards
Two cards behave differently from the rest:
- GPU is activity-bound. GPU metrics are sampled while the Streaming Dashboard is open or a hardware-accelerated stream is running — a playback session that transcodes on the GPU — so GPU history is naturally intermittent. When GPU samples age out, the card shows a neutral Idle rather than a red “Stale.”
- Temperature is sensor-conditional. A temperature card appears only if the host reports a CPU temperature. Sensorless VMs and containers simply have no temperature card.
The seven universal metrics (CPU, memory, network, disk, disk I/O, load average, swap) always have a card. A single conditional fourth card completes a symmetric grid — GPU is preferred, otherwise temperature, and never both. A host with neither shows a clean three-card second row. The unpicked series is still stored, just not shown as a card.
Clearing history
A Clear history button permanently wipes the stored history. It is confirm-gated, so an accidental click never discards your history. Live charts keep updating after a clear; historical ranges are empty until data re-accumulates.
Because the store is its own standalone SQLite database, your metric history is preserved across service restarts, dashboard updates, a reinstall of the main database, or a switch of the main database provider — and it does not need Redis to persist.
System inventory
The system inventory panel displays your server’s hardware and software details:
- Hardware — CPU model, core/thread count, total memory, disk capacity
- Operating system — Distribution, kernel version, hostname
- Service uptime — How long the server has been running since last reboot
- Mount points — Configured storage mount points with usage breakdown
Software RAID monitoring
On servers with Linux software RAID (mdadm) arrays, the System Dashboard displays a dedicated RAID panel with live array status, member disk health, and rebuild progress. The panel appears automatically when RAID arrays are detected — no configuration is required. On servers without software RAID, the panel is hidden entirely with zero overhead.
Array overview
Each detected array shows key identification and status information:
| Field | What it shows |
|---|---|
Array name | The md device name (e.g., md0, md1) |
RAID level | The array type — RAID 0, RAID 1, RAID 5, RAID 6, RAID 10, or linear |
State | Current array state: active, degraded, rebuilding, or inactive |
Mount point | Where the array is mounted on the filesystem (e.g., /, /home) |
Disk count | Total, active, working, failed, and spare disk counts |
Health status | Overall health assessment — healthy, warning, critical, or unknown |
Drive SMART health
For each member disk in an array, the panel collects S.M.A.R.T. data to assess drive health. SMART data refreshes every 5 minutes (independently of the 15-second array status updates) because the underlying smartctl probes are resource-intensive. Both SATA/SAS and NVMe drives are supported.
| SMART Metric | What it indicates |
|---|---|
Health | Overall self-assessment result — PASSED or FAILED |
Temperature | Current drive temperature in Celsius |
Reallocated sectors | Number of bad sectors remapped to spare area — non-zero values indicate drive wear |
Pending sectors | Sectors waiting to be remapped — non-zero values indicate developing problems |
Power-on hours | Cumulative hours the drive has been powered on |
SMART monitoring requires smartctl (part of the smartmontools package). If it is not installed, the RAID panel displays an install banner with a one-click Install button that provisions smartmontools via apt. After installation, drive health data begins flowing automatically on the next 5-minute SMART cycle — no page refresh needed.
Health indicators
The RAID panel uses a color-coded health system derived from array state, SMART data, and mismatch counts:
| Status | Color | Conditions |
|---|---|---|
Healthy | Green | Array is active, all disks report SMART PASSED, and the mismatch count is zero |
Warning | Amber | Any disk has reallocated or pending sectors greater than zero, or the array mismatch count is non-zero |
Critical | Red | Array is in degraded or rebuilding state, or any member disk reports SMART FAILED |
Unknown | Gray | SMART data is unavailable (no smartctl) and array state alone cannot determine health |
Rebuild progress
When an array is rebuilding, resyncing, reshaping, or running a consistency check, the panel displays a progress indicator with:
- Percentage complete — how far the operation has progressed (0–100%)
- Speed — current throughput of the rebuild operation (e.g., 185000K/sec)
- Estimated time remaining — projected finish time based on current speed
The array state changes to “rebuilding” and the health status is set to “critical” for the duration of the operation, ensuring visibility.
The RAID panel monitors /proc/mdstat at 15-second intervals and enriches the data with mdadm —detail for each array. You do not need to configure anything — if your server has software RAID arrays, the panel appears automatically. When arrays are removed, the panel disappears on the next poll cycle.
Hardware health
Below the RAID panel, a full-width Hardware Health panel gives you a one-glance read of the physical box — platform identity, CPU health, and memory health. Every server has a CPU, so this panel is always present once the first sample arrives. It is read-only and needs no packages installed; the labels and thresholds it shows are read straight from the kernel’s own sysfs and /proc interfaces.
Status and findings
A colored status pill sits next to the panel title, and any active findings appear in a strip directly beneath it:
| Status | Color | Conditions |
|---|---|---|
Healthy | Green | No corrected or uncorrected ECC errors, no offline cores, no temperature at threshold, and no outstanding advisories |
Warning | Amber | Offline cores, correctable ECC errors, a dominant faulting CPU, an unmitigated vulnerability, an outdated microcode advisory, thermal throttling, an installed-vs-visible memory gap, or a temperature at its max threshold |
Critical | Red | Uncorrectable ECC errors, hardware-corrupted memory pages, a temperature at its critical threshold, or a strongly dominant faulting CPU |
Unknown | Gray | A virtual guest with no readable temperature sensors and no ECC counters — health cannot be determined |
Measurement-gap chips
Rather than showing fake green readings, the panel is honest about what a given box does not expose. Neutral chips describe each measurement gap:
| Chip | When it appears |
|---|---|
Virtual guest | Running under a hypervisor, so some sensors and SMBIOS fields are masked |
No temperature sensors | No usable hwmon temperature source on this box (common on virtual guests) |
ECC counters not exposed | No EDAC memory-controller driver, so live correctable/uncorrectable counters are unavailable |
DMI probe unavailable | The hardware probe helper is not installed, so BIOS, board, and DIMM detail is limited |
No throttle counters | The kernel does not expose thermal-throttle counters (Intel-only, and absent under a hypervisor) |
Managing notices
Every entry the panel raises - each finding in the strip beneath the status pill and each measurement-gap chip - is a notice an admin can manage. Tick one or several, then use the row action or the bulk bar:
| Action | What it does |
|---|---|
Hide / Hide selected | Hides the notice until its underlying signal changes - the counters rise, a different CPU comes to dominate the dumps, or the severity escalates - at which point it resurfaces on its own. Best for a one-off event. |
Dismiss / Dismiss selected | Hides the notice until an admin brings it back, regardless of what the readings do afterward. |
Restore / Restore all | From the Hidden notices (N) list, returns a hidden or dismissed notice to view. |
Hidden notices no longer count toward the Hardware Health status, so a panel whose only remaining notices are hidden reads Healthy. The full-detail diagnostics export still includes them, so support always sees the complete picture. Where a notice has a real reset, that reset is offered alongside the hide and dismiss actions - kernel dumps clear with Clear dump history, and dismissing the thermal-throttle notice baselines the counters so it starts fresh.
The kernel counts throttle events since the last boot, so a single episode under heavy load used to keep the status at Warning for the rest of the uptime even after temperatures returned to normal. Now Thermal throttling active: N event(s) in the last 15 min is a warning only while events are still arriving. Once the 15-minute window passes with no new events, it eases to an informational N throttle event(s) since boot, last seen <time> line that does not degrade the status. A reboot resets the counters.
Platform column
Non-identifying SMBIOS fields describing the machine itself:
| Field | What it shows |
|---|---|
Type | Bare metal, a virtual guest and its hypervisor, or undetermined |
System vendor / Product / Family | The system maker and product identity reported by SMBIOS |
Chassis | The chassis type (desktop, server, laptop, and so on) |
Board vendor / Board / Board rev | The motherboard maker, model, and revision |
BIOS / BIOS date / Firmware release | Firmware vendor, version, build date, and SMBIOS BIOS revision |
The Product row shows the product name reported by firmware, which some hosted bare-metal servers leave blank. When firmware reports no name, an admin can select the pencil to add a product label of up to 64 characters, such as the hosting product code; when both a label and a firmware name are present, the label is shown and the firmware value appears on hover.
CPU column
| Field | What it shows |
|---|---|
Model | The processor model name |
Microcode | The running microcode revision, with the BIOS-loaded revision it was early-loaded from when the kernel reports one |
Cores | Online cores out of cores present, with an amber badge listing any offline logical CPUs |
Temperature | The package (or hottest core) temperature and its source, with a per-core grid tinted against each sensor's own max and critical thresholds |
Fans | Fan speeds in RPM, when a fan sensor is present |
Throttle events | Core and package thermal-throttle counts, or Not exposed where the counters are unavailable. A fresh throttle raises a warning only while events keep arriving; afterward it eases to an informational since-boot note (see Managing notices) |
Vulnerabilities | A summary of mitigated, vulnerable, and unknown CPU vulnerabilities, expandable to the affected names |
Kernel dumps | The count of kernel crash dumps, a per-CPU histogram, separate MCE, EDAC, and thermal line counts, and how many have occurred since the current boot |
On Intel 13th and 14th generation desktop processors, the panel surfaces a microcode advisory when the running revision predates Intel’s Vmin-shift instability mitigation. This is an advisory, not a health verdict — it points you at a BIOS or microcode update from your board vendor, and does not by itself mark the CPU as failed.
When one logical CPU shows up in a disproportionate share of kernel crash dumps, the panel calls it out as the dominant faulting CPU. This is the signal that surfaces a single failing core that would otherwise only be found by hand-mining kernel logs.
Kernel dump history
The kernel-dump count is read from the server’s kernel logs, so it reflects real history rather than only the current uptime. A caption under the histogram records where the numbers come from and how fresh they are — for example, from kern.log · oldest 2026-08-02 · newest 2026-09-02 · scanned 12s ago. Because the kernel logs rotate weekly, the history covers roughly the last five weeks.
Under that caption, a since-boot line tells you whether any dumps have landed since the machine last started. It reads No dumps since the current boot (2026-09-02) in green when the box has been clean since boot, or 3 since the current boot (2026-09-02) in amber when new dumps have arrived. The dominant-faulting-CPU finding carries the same signal at the end of its message, ending ; none since the current boot (2026-09-02) or ; 3 since the current boot.
The panel re-scans the kernel logs every 5 minutes. To refresh the count immediately, select Rescan kernel logs.
Admins see a red Clear dump history button. It opens a Clear kernel dump history confirmation dialog with a Clear history button, then deletes the rotated kernel logs and empties the live kernel log on the server, so the histogram starts from zero. Afterward the panel reads History cleared 2026-09-02 (457 dumps discarded) and an audit entry is recorded. Use it after a hardware repair or replacement, when the recorded faults no longer describe the machine. It cannot be undone. It is not offered on servers whose kernel dumps live only in the systemd journal — nothing is deleted from the journal.
Power profile
The CPU column includes a Power profile row that tells you, in plain language, how the processor’s clocks are governed right now, together with the Turbo boost state. It reads as Performance, Balanced, or Power saver — or Custom when the running settings don’t match a named profile. The row itself shows only the profile and Turbo state; the raw kernel governor and energy-preference values appear on the control’s “Now:” line (for example, “Balanced (powersave · balance_performance)”), so operators who know them can still see the underlying settings.
Where the profile is QuickBox’s to set, a Change button on the row opens the control. The control offers three profiles, a Turbo boost switch, and a “Now / At boot” strip that shows what is running now against what will load at boot.
| Profile | What it does |
|---|---|
Performance | Clocks stay high and ready — fastest response, more heat and power |
Balanced | Scales clocks with load — the Linux default, best for most servers |
Power saver | Lowest clocks and heat — slowest response |
Turbo boost lets cores briefly run above their base clock when there is thermal headroom. A profile that this CPU’s driver does not offer is shown disabled and labelled Not offered by this CPU’s driver rather than hidden.
Your choice is persisted by QuickBox, so it survives a reboot. When cpufrequtils is installed, QuickBox keeps its configuration in agreement so both apply the same setting at boot, and no package is installed to make any of this work.
On a virtual machine the row reports that CPU clocks are managed by the hypervisor and cannot be changed here. When another power manager is active — tuned, TLP, power-profiles-daemon, or auto-cpufreq — the row names it, and the profile is changed in that tool instead.
Memory column
| Field | What it shows |
|---|---|
Visible total | Kernel-visible RAM (MemTotal) |
Installed | SMBIOS-installed capacity, flagged in amber when it exceeds kernel-visible memory by a wide margin — a sign a module may have dropped out |
Corrupted | HardwareCorrupted — memory pages the kernel has quarantined, flagged red when non-zero |
ECC (firmware) | The error-correction type SMBIOS says the board supports |
ECC counters | Live EDAC correctable and uncorrectable counts, or Not exposed by kernel — a board can report ECC while the kernel has no driver for its controller |
Modules | Populated slots out of total slots and installed capacity, expandable to a per-DIMM inventory |
DIMM temperatures | Per-module temperatures on boards that carry DIMM sensors, tinted against their thresholds |
A fast tier refreshes temperatures, fans, cores, ECC counters, and memory totals every 15 seconds. A slow tier refreshes platform identity, DIMM inventory, and vulnerabilities every 5 minutes, since the underlying probes are more expensive. The panel appears automatically on the next sample — no configuration is required.
The hardware probe never reads or shows serial numbers, asset tags, or system UUIDs — those SMBIOS fields are stripped before any data leaves the server. The hardware section appears only in the full-detail diagnostics export, never in the redacted bundle or the copied support snapshot.
Writeback cleanup
The Writeback cleanup card sits at the bottom of the Hardware Health panel and is admin-only. It is the dashboard equivalent of the qb fix writeback CLI command - an admin can run the same check and fix from the browser instead of the terminal. It detects a kernel cgroup-writeback cleanup livelock, where two kernel worker threads peg a CPU while a dying control group’s cached inodes stop draining, and can release the unreferenced inodes so the drain finishes.
The card runs a read-only check automatically when the panel opens - it never polls, and never changes anything on its own. The circular refresh icon in the card header re-runs that check on demand.
A verdict badge next to the card title reports the outcome:
| Verdict | Tone | What it means |
|---|---|---|
Clear | Healthy | No pegged writeback workers - nothing to do |
Drained | Healthy | After a release, the backlog finished draining |
Livelock | Warning | The workers are pegged and the dying-cgroup drain is stalled |
Still busy | Warning | After a release, the drain is progressing but did not finish in the window |
Unsupported | Neutral | The host is on cgroup v1, where this detection does not apply |
Below the badge the card lists the state behind the verdict:
| Row | What it shows |
|---|---|
Pegged workers | Each kernel writeback worker currently pegging a CPU, with its process name and CPU percent - shown only when workers are pegged |
Dying cgroups | The count of dying-descendant control groups still holding cached inodes |
Cached inodes | The total inodes in the cache, which falls as the drain releases them |
ext4 inode cache | The ext4 inode slab size, or unknown when the kernel's slab counter is not readable by the check |
Cached memory | The kernel's cached memory, in human-readable units |
The card also prints the check’s own one-line hint on what to do next.
Only when the verdict is Livelock does a red Release unreferenced inodes button appear. Selecting it opens a confirmation dialog before anything runs. As the dialog explains, the release drops the kernel’s cached copy of inodes that no process is using, to break the livelock; files that are open or in use are left untouched; a deeply stuck machine may still need a reboot; and the release can take up to about 35 seconds. After a release the card adds an After release summary - the before-and-after worker peak, cached inodes, dying cgroups, and cached memory, plus the drain rate and an estimated time.
Run the release early, when the workers first peg, before the cached-inode lists grow large. Left to grow, the release takes longer but still completes. This is an upstream Linux 6.12 kernel regression whose bounded-drain fix is upstream but not yet in Debian. For the full symptom write-up and when a reboot is the better call, see the writeback livelock troubleshooting guide.
System users
This section shows Linux user accounts currently connected to the server and their active sessions. Each entry displays the username, terminal, connection time, and source IP address.
Health cards
The health cards provide deeper analysis for three key resource areas:
- CPU Health — Load averages, governor settings, per-core utilization, and thermal status
- Memory Health — Detailed breakdown of used, cached, buffered, and available memory plus swap usage
- Storage Health — Per-mount usage, inode consumption, and growth trends
Each card includes a status indicator (healthy, warning, or critical) based on current utilization thresholds.
Quick actions
The quick actions section provides one-click access to common system operations:
| Action | What it does |
|---|---|
Clean Memory Cache | Drops filesystem caches to free up memory. Equivalent to qb clean memory |
CPU Governor | View or change the CPU frequency scaling governor for performance optimization |
Database Health | Run integrity checks on the QuickBox Pro SQLite database |
Reboot and shutdown
The Reboot server and Shut down server controls appear in the Quick Actions widget only for system administrators. Standard users never see them.
These two power controls let an admin restart or fully power off the host directly from the dashboard:
| Control | What it does |
|---|---|
Reboot server | Restarts the host. The server is briefly unavailable while it restarts — the dashboard connection drops and reconnects automatically once the server is back online. |
Shut down server | Powers the host fully OFF. The server can only be powered back on from your host or provider console — not from this dashboard. |
Each control opens a confirmation dialog before anything happens. The reboot dialog offers a Reboot now option alongside scheduling controls (see Scheduling reboots below). Shutdown carries extra friction because it cannot be undone from the dashboard: you must type SHUTDOWN into the confirmation field before the Shut Down Server button activates. Shutdown is always immediate — there is no scheduling for power-off.
After you confirm a reboot-now or shutdown, the dashboard responds first and then the server reboots or powers off a few seconds later, so you receive a confirmation message before the connection drops.
A shutdown powers the server completely off. There is no dashboard control to turn it back on — you must use your hosting provider’s or hardware’s power console to start it again. Only use shutdown when you have console access to bring the server back.
Scheduling reboots
Administrators can schedule reboots for later instead of restarting immediately. Inside the reboot confirmation dialog, a timing selector offers three modes — Reboot now, One-time, and Recurring. The first restarts the host right away; the other two create a saved schedule that fires automatically at the time you choose. Scheduling is reboot-only — shutdown has no scheduling option.
| Mode | What it does |
|---|---|
Reboot now | Restarts the host immediately. This is the standard reboot — no schedule is created. |
One-time | Pick a date and time, and the server reboots once at that moment. The time must be at least one minute in the future. |
Recurring | Reboot on a repeating cadence — every N days (up to 365) or every N weeks (up to 52), at a chosen time of day. The schedule keeps firing until you cancel it. |
To create a one-time schedule, choose One-time, set the date and time, and select Schedule Reboot. For a recurring schedule, choose Recurring, set how often (the Every value and Days or Weeks unit) and the At time of day, then select Schedule Reboot.
All existing reboot schedules are listed in the same dialog under Scheduled reboots, each showing when it next fires. Select the trash icon beside a schedule to cancel it — its next run is removed and it will no longer reboot the server.
Scheduled reboots are backed by the operating system’s own timer service, not the dashboard. A schedule fires at the configured time even if the dashboard or your browser session is closed, and it survives the reboot it triggers. One-time schedules clean themselves up after firing, so a single scheduled reboot never loops or repeats.
Monitor rules
Monitor rules let you set up automated alerts when server resources cross defined thresholds. You can create rules for:
- CPU usage — Alert when CPU exceeds a percentage for a sustained period
- Memory usage — Alert when RAM usage crosses a threshold
- Disk usage — Alert when storage consumption reaches a warning level
Each rule can trigger configurable actions, such as sending a notification to admins.
Updates Available
The Updates Available panel is a collapsible widget that lists every package with a pending update in one searchable table. Collapsed, it summarizes the count - for example, 4 updates pending · checked 2 minutes ago, or No updates available. when everything is current. Expand it for the full table.
The table draws from two sources, shown in the Source column and selectable with the Source filter (All Source, QuickBox, APT):
| Source | What it lists |
|---|---|
QuickBox | QuickBox's own components - QuickBox CLI (the qb core) and QuickBox Dashboard - each shown only when an update is actually available, with the installed version and the version available to update to. The available CLI version comes from the hourly qb update check, and the Dashboard version from the dashboard's own channel-aware release check. |
APT | Operating-system packages reported by apt list --upgradable, each with its installed and candidate version. |
Every column is sortable, and the search box (Search packages…) filters by package name. On a phone the Current column is hidden and the Available field shows the change as installed → available.
Both QuickBox rows carry an Open Updates link to the updates page, where either component can be updated, alongside the matching CLI command for reference - qb update quickbox for the CLI core and qb update dashboard for the Dashboard. See Updates & Changelog for the full update workflow.
Admins also get an Update APT Dependencies button on the panel. It applies to the APT package rows only - the QuickBox rows are updated from the updates page or the CLI, not by this button.
APT runner
The APT Runner is a slide-out panel for managing operating system package updates:
- Pending updates — View a list of available system package updates
- Apply updates — Run package updates with live output streaming
- Update history — Review previously applied updates
APT updates affect the underlying operating system packages, not QuickBox Pro applications. To update QuickBox-managed applications, use the Package Management panel on the App Dashboard or the qb update command.
Diagnostics
The System Dashboard is the preferred, fastest way to gather diagnostics for a support thread — no terminal required. There are two levels, depending on how much detail support asks for.
Quick snapshot — “Copy diagnostics” (top right)
The command bar at the top right of the System Dashboard has a Copy diagnostics button. One click copies a readable live-telemetry snapshot — CPU, memory, disk, network throughput, the active time ranges, and vnStat status — to your clipboard. Paste it straight into your Discord support thread. This is all most first replies need.
Full report — the “Diagnostics” panel (bottom of the page)
Scroll to the bottom of the System Dashboard to the Diagnostics panel (“System information for troubleshooting”). It opens expanded on its Application section, and expands into collapsible sections — Application, System, Services, Audit, Network Interfaces, and Recent Errors — and flip the Advanced toggle for extended service and network detail.
Along the bottom of the panel are four export buttons that produce a redacted report, safe to paste into a public thread:
| Button | What it produces |
|---|---|
Copy | A readable summary to your clipboard |
.txt | The same readable summary as a downloadable text file |
.json | The full diagnostics as structured JSON |
Bundle | The JSON report plus recent audit events, as a downloadable file |
These standard exports mask host identity — they replace this server’s hostname, its public IPv4 and IPv6 addresses (a private IPv4 like 10.x or loopback ::1 stays), and adapters with custom names. That makes them safe to share publicly, but they still describe your machine (hardware, versions, timezone), so avoid posting them where you would not post those details.
Full detail bundle — for a DM when support asks
Next to the four export buttons is a Full detail menu. Its options — Copy to clipboard, Download .txt, Download .json, and Download bundle — produce the unredacted report, with your hostname and addresses left in so support can match the report to your exact server.
Use Full detail → Download bundle when support asks a follow-up question and needs the complete picture. Because it carries host identity, send it in a direct message to QuickBox support for an open case — do not post it in a public channel.
The dashboard is the preferred path, but the same evidence is available from the command line with qb generate log, which writes a bundle to /opt/quickbox/logs/system_log. Use it when you are already in a terminal session or the dashboard is unreachable.
Streaming Maintenance
The Streaming Maintenance panel is only visible to admin users when the WSDashboard feature is enabled on your server. If WSDashboard is not enabled, this section does not appear.
When WSDashboard is active, the System Dashboard includes a Streaming Maintenance panel directly below the RAID section. This panel gives admins a single place to trigger and monitor background maintenance tasks across all configured media servers — without leaving the system view.
What it shows
The panel renders one section per connected media server (Plex, Emby, and Jellyfin each appear separately when configured). Each section lists the maintenance tasks reported by that server, along with their current state, last-run time, and result status.
| Column | What it shows |
|---|---|
Task name | The maintenance task's display name and category label (Library, Database, Media Analysis, Maintenance, etc.) |
Last run | How long ago the task last completed (e.g., 2h ago, Never) |
Last result | Outcome of the previous run: OK, Failed, Cancelled, or — if never run |
Progress bar | A live progress bar that fills as the task runs. Updated in real time through the SSE event stream. |
Run / Cancel | Run enqueues the task immediately. Cancel stops a task that is currently running. Only one button is visible at a time. |
If a configured server returns no scheduled tasks, its section displays “No tasks reported” rather than being hidden entirely.
Task sources by server type
Emby and Jellyfin expose their maintenance operations through a standard Scheduled Tasks API. Plex uses a different subsystem called Butler — a set of named background jobs the Plex Media Server runs on its own schedule (library refreshes, database optimization, media analysis, bundle cleanup, and others). Butler task names and categories do not match Emby/Jellyfin task names, but the panel presents them in the same format.
On Plex, the panel also surfaces any active Activities — operations that are currently running rather than scheduled (for example, a library scan initiated from the Plex web interface). Active Activities appear alongside Butler tasks in the Plex section and can be cancelled if the activity supports cancellation.
Butler tasks on Plex use PascalCase internal names (for example, RefreshLibraries, OptimizeDatabase, CleanOldBundles). The panel displays these in a human-readable format. Last-run time is not available for Butler tasks — the Plex API does not expose it. Only the running/idle state and progress are tracked.
Running and cancelling tasks
Click Run on any idle task to enqueue it immediately. The task state changes to running and a progress bar appears. Click Cancel on a running task to stop it. For Plex, cancellation routes to the appropriate endpoint depending on whether the task is a Butler task or an active Activity.
Live progress updates arrive through the dashboard’s server-sent events stream (activity.update events), so you see scan/refresh/optimize progress without refreshing the page.
Inter-Instance Transfers
The Inter-Instance Transfers panel appears on the System Dashboard for administrators once Inter-Instance Transfer is enabled under Settings → General → Feature Flags. It shows live transfer activity for this server only — the transfers moving between this box and its paired instances, not a fleet-wide view.
When Inter-Instance Transfer is enabled, the System Dashboard includes a live cockpit for the transfers currently moving to and from this server. It is a monitoring surface — for the full send, approve, and pull workflow, see the Inter-Instance Transfer page.
The cockpit shows:
- Summary strip — the number of active transfers, aggregate speed, and bytes moved in flight.
- Sender → receiver node-map — a live map of this server and the peers it is exchanging data with.
- Per-transfer rows — one row per active transfer: the local user, the direction (sending or receiving), the peer, size and percent complete, file count, elapsed time, average speed, live speed, and status.
- A Transfers page button out to the full page, plus — for peers that have opted in — a deep-link straight to that peer’s own Transfers page.
A peer is shown by an opaque id or a friendly same-account label — never as an IP address, host, or port, and never as a peer-side username. The cockpit is admin only and enforces same-owner scope on every request.
CLI equivalents
| Dashboard Action | CLI Command |
|---|---|
Clean memory cache | qb clean memory |
Generate diagnostics | qb generate log |
Check for QuickBox updates | qb update check |
Best practices
Do
- Check the System Dashboard regularly to catch resource trends before they become problems
- Set up monitor rules for disk usage to receive early warnings before storage fills up
- Use the bandwidth history charts to identify unexpected traffic patterns
- Generate a diagnostic bundle before contacting support — it helps the team resolve issues faster
- Review memory health when applications are running slowly — high swap usage often indicates insufficient RAM
- Install
smartmontoolson servers with software RAID to get full drive health visibility in the RAID panel - Let the Telemetry History Store accumulate — it keeps your metric history gap-free across restarts and reinstalls with no configuration, and only clear it when you deliberately want to discard history
Don't
- Don't ignore sustained high CPU or memory readings — investigate which application is consuming resources
- Don't ignore warning or critical RAID health indicators — reallocated sectors and mismatch counts can precede drive failure
- Don't run memory cache cleanup constantly — the kernel manages caches efficiently under normal conditions
- Don't apply APT updates during heavy server usage — schedule maintenance during off-peak hours
- Don't confuse APT system updates with QuickBox application updates — they are separate operations
FAQ
vnstat.conf, click Rebuild interfaces in the Network Stats panel or run qb manage vnstat --rebuild.admin.system.dashboard permission. If you are an admin and still cannot see it, check your role's permissions in User Management./proc/mdstat for active arrays — if none exist, the panel is hidden entirely. Hardware RAID controllers that present virtual disks to the OS (without mdadm) will not show a RAID panel.smartctl from the smartmontools package. If it is not installed, the RAID panel shows an install banner with a one-click Install button that provisions the package automatically. After installation, drive health data begins flowing within 5 minutes.smartctl probes are resource-intensive. Between SMART refreshes, the most recent cached values are displayed./sys/block/mdX/md/mismatch_cnt) indicates data inconsistencies found during a scrub or check operation. A non-zero value triggers a warning health status. While small mismatch counts on RAID 1/10 can be benign (e.g., from swap partitions), they should be investigated on RAID 5/6 arrays as they may indicate silent data corruption.qbpro.metrics.db) on the server, so history is preserved across service restarts, dashboard updates, a reinstall of the main database, or a switch of the main database provider. It does not depend on Redis.Related pages
Gather diagnostics and route your symptom to the page that owns it
How to open a high-signal Discord support thread with the right evidence
Manage applications and view per-app system metrics
Configure network interfaces, mount points, and vnStat
How vnStat's tracked interface set stays in sync with your topology
View audit events and application log files
QuickBox and dashboard version management
WSDashboard overview — prerequisites, supported servers, and setup
Move files and folders directly between your own QuickBox instances
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.