115 lines
5.4 KiB
HTML
115 lines
5.4 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="color-scheme" content="dark" />
|
|
<title>arr</title>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
</head>
|
|
<body>
|
|
<!--
|
|
THESIS: arr is a signal chain — TMDB and Prowlarr feed in, Transmission is
|
|
driven out — and health is lamps on that chain, read in one glance. Refuses
|
|
the admin-dashboard rut: no sidebar, no stat cards, no hero metric.
|
|
OWN-WORLD: broadcast master-control panel. Near-black charcoal ground,
|
|
machined panel modules with inset hairline borders, engraved uppercase
|
|
micro-labels, monospace readouts, status lamps (signal green / amber /
|
|
fault red) with a soft glow, phosphor-cyan for the one interactive control.
|
|
STORY: the operator opens the board, reads the master lamp, and knows in a
|
|
second whether arr can do its job — and which upstream is down, by name.
|
|
FIRST VIEWPORT: a top rail (wordmark + master lamp + verdict + version +
|
|
PROBE control), then the chain: TMDB and PROWLARR modules on the left
|
|
feeding the central arr module, TRANSMISSION driven on the right, joined by
|
|
bus hairlines with direction arrows. Footer rail carries the round-trip
|
|
readout. On a phone the chain stacks vertically.
|
|
FORM: broadcast master-control panel, #2 of 7 on the ordered list; external
|
|
roll (shell RANDOM → 2, witness 57910; concept-seed.mjs degraded to empty
|
|
output in this environment).
|
|
FINISH: unreviewed and undocumented is unfinished; this build ends with the
|
|
finish review, the verdict, and DESIGN.md.
|
|
-->
|
|
<header class="rail">
|
|
<div class="rail-id">
|
|
<span class="lamp" id="master-lamp" data-state="probing" aria-hidden="true"></span>
|
|
<h1 class="wordmark">arr</h1>
|
|
</div>
|
|
<p class="rail-verdict readout" id="master-verdict" role="status">probing chain…</p>
|
|
<div class="rail-meta">
|
|
<span class="readout dim" id="version" data-testid="version">v —</span>
|
|
<button type="button" class="control" id="probe">probe</button>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="board">
|
|
<section class="chain" aria-label="signal chain">
|
|
<article class="module area-tmdb" data-check="tmdb">
|
|
<header class="module-head">
|
|
<span class="lamp" data-state="probing" aria-hidden="true"></span>
|
|
<h2 class="module-name">tmdb</h2>
|
|
<span class="module-status readout" data-role="status">probing</span>
|
|
</header>
|
|
<p class="module-role">metadata in</p>
|
|
<p class="module-detail readout" data-role="detail">titles, languages, release dates</p>
|
|
</article>
|
|
|
|
<div class="bus area-t1" aria-hidden="true">
|
|
<svg viewBox="0 0 40 8" preserveAspectRatio="none" class="bus-trace" data-trace="tmdb" aria-hidden="true">
|
|
<line x1="0" y1="4" x2="32" y2="4" />
|
|
<path d="M32 0.5 39 4 32 7.5 Z" class="bus-arrow" />
|
|
</svg>
|
|
</div>
|
|
|
|
<article class="module area-prowlarr" data-check="prowlarr">
|
|
<header class="module-head">
|
|
<span class="lamp" data-state="probing" aria-hidden="true"></span>
|
|
<h2 class="module-name">prowlarr</h2>
|
|
<span class="module-status readout" data-role="status">probing</span>
|
|
</header>
|
|
<p class="module-role">indexers in</p>
|
|
<p class="module-detail readout" data-role="detail">torznab search and rss</p>
|
|
</article>
|
|
|
|
<div class="bus area-t2" aria-hidden="true">
|
|
<svg viewBox="0 0 40 8" preserveAspectRatio="none" class="bus-trace" data-trace="prowlarr" aria-hidden="true">
|
|
<line x1="0" y1="4" x2="32" y2="4" />
|
|
<path d="M32 0.5 39 4 32 7.5 Z" class="bus-arrow" />
|
|
</svg>
|
|
</div>
|
|
|
|
<article class="module module-master area-master" data-check="master">
|
|
<header class="module-head">
|
|
<span class="lamp lamp-big" data-state="probing" aria-hidden="true"></span>
|
|
<h2 class="module-name">arr</h2>
|
|
<span class="module-status readout" data-role="status">probing</span>
|
|
</header>
|
|
<p class="module-role">reconcile core</p>
|
|
<p class="module-detail readout" data-role="detail">decide · find · fetch · import</p>
|
|
</article>
|
|
|
|
<div class="bus area-out" aria-hidden="true">
|
|
<svg viewBox="0 0 40 8" preserveAspectRatio="none" class="bus-trace" data-trace="master" aria-hidden="true">
|
|
<line x1="0" y1="4" x2="32" y2="4" />
|
|
<path d="M32 0.5 39 4 32 7.5 Z" class="bus-arrow" />
|
|
</svg>
|
|
</div>
|
|
|
|
<article class="module area-transmission" data-check="transmission">
|
|
<header class="module-head">
|
|
<span class="lamp" data-state="probing" aria-hidden="true"></span>
|
|
<h2 class="module-name">transmission</h2>
|
|
<span class="module-status readout" data-role="status">probing</span>
|
|
</header>
|
|
<p class="module-role">torrents out</p>
|
|
<p class="module-detail readout" data-role="detail">rpc · grab and seed</p>
|
|
</article>
|
|
</section>
|
|
</main>
|
|
|
|
<footer class="rail rail-foot">
|
|
<span class="readout dim" id="roundtrip">rtt —</span>
|
|
<span class="readout dim" id="poll-note">repolls every 15 s</span>
|
|
</footer>
|
|
</body>
|
|
</html>
|