Skip to Content
DocsDashboardSystem Monitoring

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.

Admin only

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:

MetricWhat 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 (or Cmd+K on 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.

Manual override

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.

Admin only, entirely local

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.

TierResolutionRetention
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:

MetricFeeds
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.

History survives restarts and reinstalls

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:

FieldWhat 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 MetricWhat 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 availability

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:

StatusColorConditions
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.

Automatic detection

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:

StatusColorConditions
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:

ChipWhen 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:

ActionWhat 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.

Thermal throttling recalibrates on its own

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:

FieldWhat 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

FieldWhat 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
Microcode advisory

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.

Kernel-fault histogram

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.

Clearing dump history

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.

ProfileWhat 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.

When the profile is read-only

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

FieldWhat 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
Refresh cadence

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.

Privacy

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:

VerdictToneWhat 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:

RowWhat 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.

Release unreferenced inodes

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.

Apply early

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:

ActionWhat 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

Admin only

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:

ControlWhat 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.

Shutdown is irreversible from the dashboard

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.

ModeWhat 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.

How scheduled reboots fire

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):

SourceWhat 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
System packages

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:

ButtonWhat 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.

CLI alternative

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

Requires WSDashboard

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.

ColumnWhat 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.

Plex Butler task names

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

Admin only, shown when transfers are enabled

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.
Peer addresses stay private

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 ActionCLI 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 smartmontools on 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

The bandwidth history charts rely on vnStat for data collection. If vnStat is not installed or has not yet collected enough data, the charts will appear empty. VnStat needs time to accumulate statistics after initial setup. You can configure the network interface in Settings > General > Additional Dashboard Settings.
No. vnStat re-syncs its interface list automatically when network topology changes - bonds, bridges, teams, and VLAN aggregates are detected and registered on their own. If you want to force a re-sync after hand-editing vnstat.conf, click Rebuild interfaces in the Network Stats panel or run qb manage vnstat --rebuild.
Green indicates healthy resource levels. Yellow indicates a warning — the resource is approaching capacity. Red indicates a critical state — immediate attention is recommended. These thresholds are based on standard utilization percentages.
Yes. Use the time range selector and player controls in the command bar above the bandwidth chart to navigate to any historical period for which vnStat has data.
The System Dashboard is restricted to admin users with the admin.system.dashboard permission. If you are an admin and still cannot see it, check your role's permissions in User Management.
Monitor rules send notifications through the dashboard's notification system. You will receive alerts based on the notification channels you have configured in your profile (in-app, email, Discord, or Signal).
The Software RAID panel only appears on servers with Linux software RAID (mdadm) arrays. It checks /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.
SMART monitoring requires 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.
Array status (state, disk counts, rebuild progress) updates every 15 seconds via server-sent events. SMART data for member disks refreshes every 5 minutes because the underlying smartctl probes are resource-intensive. Between SMART refreshes, the most recent cached values are displayed.
The mismatch count (read from /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.
The Streaming Maintenance panel requires two conditions: you must be logged in as an admin, and the WSDashboard feature must be enabled on your server. If either condition is not met, the panel is hidden. Enable WSDashboard from the Streaming Dashboard settings page, then return to the System Dashboard.
The Plex Butler API does not expose last-run timestamps for scheduled tasks — it only reports whether each task is currently running or idle. Last-run time is available for Emby and Jellyfin tasks because their Scheduled Tasks API includes execution history.
Yes. In the reboot confirmation dialog, administrators can choose One-time to reboot once at a future date and time, or Recurring to reboot every N days (up to 365) or every N weeks (up to 52) at a chosen time. Scheduling applies to reboot only — shutdown is always immediate.
Yes. Scheduled reboots run through the operating system's own timer service, independently of the dashboard. The schedule fires at the configured time even if the dashboard and your browser session are closed, and it survives the reboot it triggers.
Open the reboot dialog. Existing schedules are listed under Scheduled reboots, each showing its next run time. Select the trash icon beside a schedule to cancel it — it will no longer reboot the server.
The Telemetry History Store keeps four resolution tiers at once: raw samples for 48 hours, per-minute averages for 30 days, per-hour averages for 1 year, and per-day averages indefinitely (until you clear the history). Charts automatically read whichever tier fits the range you request, so a multi-year view uses the compact 1-day tier.
Yes. The Telemetry History Store is its own standalone SQLite database (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.
No. The Telemetry History Store is entirely local — it lives in an on-server database and is never transmitted anywhere. It is separate from the account-dashboard telemetry that your server reports over the heartbeat.
GPU metrics are sampled while the Streaming Dashboard is open or a hardware-accelerated stream (a playback session transcoding on the GPU) is running, so GPU history is intermittent by design — an idle, unwatched GPU simply has gaps. When GPU samples age out, the card shows a neutral Idle rather than a red Stale — that is expected, not a fault.
The temperature card appears only if the host reports a CPU temperature. Sensorless virtual machines and containers have no temperature sensor, so no temperature card is shown. The remaining metric cards are unaffected.
The Inter-Instance Transfers cockpit is admin only and appears only after an administrator enables Inter-Instance Transfer under Settings → General → Feature Flags. If the feature is disabled, or you are not an administrator, the panel is hidden.

Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server
Last updated on