feat: redesign network topology diagram with accurate rack layout

Replace linear Internet→UDM→Agg→PoE→all-hosts chain with accurate topology:
- USW-Aggregation and Pro 24 PoE switch shown side-by-side with horizontal
  10G SFP+ link between them (not in series)
- 5 compute/storage/monitor nodes fanned out under Agg Switch with 10G labels
  and rack unit positions (RU4–12, RU14–17) as sublabels
- large1 shown separately under PoE switch, dashed border = off-rack (table)
- Add device specs as subtitles on all nodes (Dream Machine Pro · RU24, etc.)
- Shorter display names: csg-01 / cs-01 instead of full hostnames
- Live status badges still updated by JS via data-host attributes
- New CSS: .topo-node-sub, .topo-switch-tier, .topo-h-link, .topo-host-tier,
  .topo-host-table (dashed), .topo-badge-unknown

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 22:06:03 -04:00
parent c1fd53f9bd
commit e779b21db4
2 changed files with 137 additions and 30 deletions

View File

@@ -356,6 +356,66 @@ a:hover { text-decoration: underline; text-shadow: var(--glow-amber); }
.topo-status-dot { width:7px; height:7px; border:1px solid var(--text-muted); background:transparent; position:absolute; top:5px; right:5px; }
/* Topology subtitle text */
.topo-node-sub {
font-size: .58em;
color: var(--text-muted);
letter-spacing: .02em;
font-weight: normal;
}
.topo-badge-unknown { color:var(--text-muted); border-color:var(--border); }
/* Switch tier: two switches with horizontal connector */
.topo-switch-tier {
display: flex;
align-items: center;
gap: 0;
}
.topo-h-link {
display: flex;
flex-direction: column;
align-items: center;
padding: 0 8px;
}
.topo-h-link-line {
width: 70px;
height: 1px;
background: var(--amber);
opacity: .5;
}
.topo-h-link-label {
font-size: .52em;
color: var(--amber);
opacity: .7;
margin-top: 3px;
letter-spacing: .04em;
}
/* Host tier: two groups side by side */
.topo-host-tier {
display: flex;
justify-content: center;
align-items: flex-start;
gap: 40px;
margin-top: 0;
}
.topo-host-group { flex-shrink: 0; }
/* PoE host group: offset right to sit below PoE switch */
.topo-poe-hosts {
padding-top: 0;
}
/* Off-rack node (dashed border) */
.topo-host-table {
border-style: dashed;
}
/* ── Host cards ───────────────────────────────────────────────────── */
.host-grid {
display: grid;