Skip to content

Dashboard

The Dashboard is the main view in NOBA. It displays real-time system metrics as a grid of cards, each polling via a persistent Server-Sent Events (SSE) connection.

Card System

Each card shows a focused slice of system state:

CardContent
SystemHostname, OS, kernel, uptime, load average
CPUUsage %, per-core bars, temperature, history chart
MemoryRAM used/total, swap, usage history
DiskPer-mount usage bars
NetworkRx/Tx rates, interface details
ServicesSystemd service status with start/stop/restart controls
ContainersDocker/Podman container list and status
RadarPing latency to configured hosts
Pi-holeQuery count, block rate, top blocked domains
PlexActive streams and transcodes
TrueNASPool health, apps, alerts, VMs
Radarr/SonarrQueue, wanted, calendar items
qBittorrentActive torrents, speed, ratio
AlertsActive threshold violations
BookmarksQuick-launch links

Card Visibility

Cards that depend on integrations are hidden until the corresponding URL is configured in Settings → Integrations. Cards with no data to show collapse automatically.

To manually hide a card, click the chevron icon in its top-right corner. The collapsed state is saved per-card in localStorage.

Masonry Layout

Cards use a masonry grid layout that automatically fills vertical gaps. The layout recalculates whenever a card is expanded, collapsed, or the window is resized.

Drag to Reorder

Grab any card by its header and drag it to a new position. The order is saved in localStorage and persists between sessions.

To reset the layout to the default order, open the browser console and run:

js
localStorage.removeItem('noba-card-order')
location.reload()

Health Bar

The header displays a global health bar derived from the worst active alert severity:

ColourMeaning
GreenAll systems nominal
YellowAt least one warning-level alert
RedAt least one critical-level alert

Alerts

Alert banners appear at the top of the dashboard when metric thresholds are breached. Alerts are evaluated server-side every 5 seconds against configured alert rules.

  • Click × to dismiss an alert for the current session.
  • Persistent alerts re-appear on the next SSE push if the condition is still true.
  • Notifications (Telegram, email, Discord, Slack, etc.) fire once per alert with a 5-minute cooldown.

See Automations — Alert Rules for how to configure thresholds.

Live Connection Indicator

The Live pill in the header shows SSE connection state:

  • Live — SSE stream is active; updates arrive every 5 seconds.
  • Xs — SSE disconnected; falling back to polling every X seconds.
  • Offline — No connection. Check that the server is running.

For reverse proxies, ensure SSE headers are not stripped. See Troubleshooting for Nginx and Caddy config examples.

Released under the MIT License.