Skip to content

J4 — Daily use

Status: Accepted · Audience: Operator

Exercises: B3 · B4 · G7


$ lemonfiber

Bare invocation with configuration present opens the dashboard (B3-R1). No subcommand to remember, because this is what the operator does most.

✓ Everything's fine · 12 services · 3 downloading · 480 GB free
VPN 185.65.x.x (NL) · port 51413 · egress matches ✓
Transfers The Expanse S04E03 ▓▓▓▓▓▓▓░░░ 71% 14 MB/s 2m
Dune Part Two ▓▓░░░░░░░░ 18% 8 MB/s 21m
Queue sonarr 4 · radarr 1 · lidarr 0
Storage 480 GB free · hardlinks ✓ · ~26 days at current rate
Services 12 healthy

Everything's fine is not a count of running containers. It’s computed from the findings that actually affect the operator — VPN state, queue health, provider capacity, disk, hardlink status (G7-R2).

A stack with all twelve containers up and a leaking VPN does not say “everything’s fine” (G7-R4). That distinction is the entire reason the summary exists rather than a service count.

The healthy case matters as much as the unhealthy one. An operator who can glance and be reassured stops checking obsessively — which is what makes a self-hosted system tolerable to live with long-term.

Above transfers, deliberately: it’s the only item on screen with consequences outside the machine.

Three lines above are things no component can report on its own, and they’re the dashboard’s real justification:

Figure Why it needs a cross-service view
egress matches ✓ Compares public IP observed inside qBittorrent against Gluetun’s
hardlinks ✓ Whether imports are linking or copying — otherwise invisible
~26 days at current rate Free space projected against queued content
Want Action
Why is something slow? Logs, filtered — multiple services interleaved (B4-R1)
Why did an import fail? Sonarr’s and SABnzbd’s lines side by side, which is the only way it’s explicable
What’s wrong? The summary expands to affected items and their remedies (G7-R7)

If the telemetry channel drops but control still works, the dashboard says so and stays open (B3-R7). Affected panels are marked; the rest stay live.

Stale, unknown and zero are rendered differently (B3-R5). 0 B/s and unknown mean opposite things to someone deciding whether a download is stuck.

This page lives in another repository Rendered from lemonfiber/spec at 1d10402, 2026-09-09. Read the source of this page