Dashboard
The Cloud OS dashboard is the first screen you see after logging in. It provides a real-time overview of your server health, running applications, and disk diagnostics. Metrics are streamed live via WebSocket and update automatically without page refreshes.
The dashboard is a customisable 4-column grid: every widget can be resized anywhere from 1x1 to 4x4, reordered, or stacked into multi-row blocks. The Theme Designer ships five animated wallpapers and a Motion-level picker so you can tune the visual depth to your hardware. See Dashboard Customization for the full surface.
Per-User Layout Sync
As of 0.9.7, your dashboard layout is stored server-side and follows you across every device you log in from. There are two independent layouts — Server Home and Personal Home — and each syncs separately.
When you rearrange or resize widgets on one device, the change is saved to the server immediately. Any other device you open will pick up the new layout on the next load.
Offline cache: your browser keeps the last known layout in localStorage so the dashboard renders instantly while the server response is in flight. When the fresh layout arrives it replaces the cached copy.
Stale-version conflicts: Cloud OS uses optimistic concurrency for layout saves. If two devices write at the same moment — for example, you resize a widget on a phone and on a laptop in quick succession — the second write is rejected with a 409 Conflict response. The dashboard shows a brief toast (“Layout updated from another device”) and reloads the server’s latest version so you are never left with diverged state.
The layout API is documented in the Dashboard Layout API section of the API reference.
System Metric Cards
The top of the dashboard displays four primary metric cards:
| Card | What It Shows |
|---|---|
| CPU | Current utilization percentage with a sparkline chart |
| RAM | Used and total memory in GB with utilization percentage |
| Disk | Used and total storage with utilization percentage |
| Network | Current inbound and outbound throughput in bytes per second |
Each card includes animated count-up numbers and a miniature sparkline showing recent activity.
How Metrics Are Collected
The Go backend polls system metrics every 10 seconds using the gopsutil library. Raw readings are pushed to connected frontends via WebSocket in real time. For historical charts, data is stored in SQLite at three resolutions:
- 1-minute intervals retained for the last 24 hours
- 1-hour intervals retained for the last 30 days
- 1-day intervals retained for the last year
A background rollup goroutine automatically compacts older data into the lower-resolution tiers.
Running Apps Widget
Below the metric cards, the dashboard shows all installed applications with their current state:
- App name and icon
- Status indicator — running, stopped, or error
- Domain the app is accessible at
- RAM usage for the app containers
Click any app in the list to jump directly to its management page.
Disk Health
The disk health widget provides proactive storage monitoring by combining real-time usage data with predictive analysis.
SMART Data
When smartctl is available on the host, Cloud OS reads Self-Monitoring, Analysis, and Reporting Technology (SMART) attributes from your drives. The widget displays key indicators such as reallocated sector count, power-on hours, and temperature.
Disk Full Prediction
Cloud OS applies linear regression over the last 30 days of disk usage data to estimate when your storage will reach capacity. The prediction is displayed as “disk full in N days” on the dashboard.
If your usage patterns are highly variable (for example, periodic large ingests followed by cleanup), the linear prediction may fluctuate. The algorithm recalculates with each new data point.
Time Range Selector
Use the time range selector in the top-right corner to adjust the historical view of metric charts. Available ranges are:
- 1 hour
- 6 hours
- 24 hours
- 7 days
- 30 days
The selected range determines which resolution tier is queried from the database.
Service Status Widget
The Service Status widget shows system services and their current state.
By default the widget filters to running services only so the list stays short. Click the All toggle in the widget header to see every service regardless of state.
Pagination is built in: the footer shows ← N/M → where N is the current page and M is the total number of pages. Use the arrows to scroll through the full service list without the widget overflowing its grid cell.
Top Processes Widget
The Top Processes widget lists the highest-CPU and highest-RAM consumers on the host. As of 0.9.7, it paginates in the same way as Service Status (← N/M →) so you can browse the full process table without resizing the widget.
Storage Overview Widget
The Storage Overview widget enumerates real filesystems on the host. It recognises the following filesystem types: ext4, xfs, btrfs, zfs, f2fs, and vfat (typically the EFI or /boot partition). Pseudo-filesystems such as tmpfs, devtmpfs, and squashfs are excluded from the list.
When more than one disk is present, the widget paginates one disk per page. Use the ← → arrows in the widget footer to move between disks. Each page shows the mount point, filesystem type, total/used/free space, and a fill-level bar.
Network — Per Interface Widget
The Network — Per Interface widget gives you per-adapter throughput history without relying on the aggregate Network metric card.
Interface tabs: a tab strip across the top of the widget lists every non-loopback interface detected on the host (for example eth0, enp3s0, wlan0). Click a tab to switch the chart to that interface.
RX/TX area charts: two stacked area charts display inbound (RX) and outbound (TX) throughput using 24 hours of bucketed history pulled from GET /api/network/history.
Range picker: a compact pill group in the widget header lets you zoom the chart window:
| Range | Bucket size |
|---|---|
| 5 m | 10 s |
| 15 m | 30 s |
| 1 h | 1 min |
| 6 h | 5 min |
| 24 h | 15 min |
Selecting a shorter range increases detail for recent activity; selecting 24 h gives the full-day trend at lower resolution.
Server Info
The server info panel shows:
- Hostname
- Operating system and kernel version
- Server uptime
- Quazzar Cloud OS version
- Docker version
Greeting
The top of the dashboard displays a personalized greeting based on the time of day:
- Before 12:00 — “Good morning,
name” - 12:00 to 18:00 — “Good afternoon,
name” - After 18:00 — “Good evening,
name”
Command Palette
Press Cmd+K (or Ctrl+K on Linux) anywhere in Cloud OS to open the command palette. From the dashboard you can:
- Navigate to any page
- Search installed apps by name
- Toggle between dark and light themes
- Sign out
The palette supports fuzzy matching, so typing “next” will find “Nextcloud” immediately.
Troubleshooting
Metrics show 0% or are not updating
Verify that the WebSocket connection is active. Open your browser developer console and check for WebSocket errors. The backend pushes metrics every 10 seconds, so values should update shortly after page load.
Dashboard loads slowly
If charts take a long time to render, the SQLite metrics table may have grown large. Cloud OS automatically compacts data, but you can check the database size:
du -sh /var/lib/quazzar/data/quazzar.dbIf the database exceeds 500 MB, check that the rollup job is running by reviewing the application logs.