Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/holger

.nornir/assets/common-framework.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1180 660" font-family="'DejaVu Sans', 'Segoe UI', sans-serif">
  <defs>
    <linearGradient id="board" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#0b1c2e"/>
      <stop offset="1" stop-color="#06111d"/>
    </linearGradient>
    <linearGradient id="chip" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#14384f"/>
      <stop offset="1" stop-color="#0e2a3e"/>
    </linearGradient>
    <linearGradient id="rail" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#173d57"/>
      <stop offset="1" stop-color="#0c2438"/>
    </linearGradient>
    <marker id="arr" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto">
      <path d="M0 0 L7 3 L0 6 Z" fill="#6fd3f5"/>
    </marker>
  </defs>

  <rect x="0" y="0" width="1180" height="660" fill="url(#board)"/>
  <text x="40" y="46" fill="#bfe6f7" font-size="24" font-weight="700">holger on the shared nordisk common framework — consume, never twin</text>
  <text x="40" y="72" fill="#6f9bb5" font-size="14">Every suite app (nornir · dwarves · korp · holger) reuses ONE toolbox: lifecycle · serve loop · job manager · UI (JetBrains-style).</text>

  <!-- holger app (left) -->
  <rect x="40" y="120" width="300" height="470" rx="12" fill="url(#chip)" stroke="#2b6c93"/>
  <text x="60" y="152" fill="#bfe6f7" font-size="18" font-weight="700">holger (the artifact registry)</text>

  <rect x="60" y="176" width="260" height="70" rx="8" fill="url(#rail)" stroke="#2b6c93"/>
  <text x="76" y="204" fill="#cfeefc" font-size="14" font-weight="700">server/cli — the ship</text>
  <text x="76" y="226" fill="#8fbcd4" font-size="12">install / start / status / health · holger user</text>

  <rect x="60" y="258" width="260" height="70" rx="8" fill="url(#rail)" stroke="#2b6c93"/>
  <text x="76" y="286" fill="#cfeefc" font-size="14" font-weight="700">server/lib — serve + jobs</text>
  <text x="76" y="308" fill="#8fbcd4" font-size="12">tonic serve loop · promote / GC job ledger</text>

  <rect x="60" y="340" width="260" height="92" rx="8" fill="url(#rail)" stroke="#2b6c93"/>
  <text x="76" y="368" fill="#cfeefc" font-size="14" font-weight="700">server/ui — the operator GUI</text>
  <text x="76" y="390" fill="#8fbcd4" font-size="12">About (identity) · Tools menu · look/table/3D</text>
  <text x="76" y="410" fill="#8fbcd4" font-size="12">Tools · Demo appliance → a jera container job</text>

  <rect x="60" y="444" width="260" height="60" rx="8" fill="url(#rail)" stroke="#2b6c93"/>
  <text x="76" y="470" fill="#cfeefc" font-size="14" font-weight="700">holger-demo / holger-embed</text>
  <text x="76" y="490" fill="#8fbcd4" font-size="12">wasm demo · native Box&lt;dyn Facet&gt; panel</text>

  <!-- arrows to the toolbox -->
  <line x1="340" y1="211" x2="820" y2="200" stroke="#6fd3f5" stroke-width="2" marker-end="url(#arr)"/>
  <line x1="340" y1="293" x2="820" y2="330" stroke="#6fd3f5" stroke-width="2" marker-end="url(#arr)"/>
  <line x1="340" y1="386" x2="820" y2="330" stroke="#6fd3f5" stroke-width="2" marker-end="url(#arr)"/>
  <line x1="340" y1="386" x2="820" y2="460" stroke="#6fd3f5" stroke-width="2" marker-end="url(#arr)"/>
  <line x1="340" y1="410" x2="820" y2="590" stroke="#6fd3f5" stroke-width="2" marker-end="url(#arr)"/>

  <!-- shared toolbox (right) -->
  <text x="820" y="150" fill="#8fd0ea" font-size="16" font-weight="700">the SHARED toolbox (edda / Skidbladnir / facett)</text>

  <rect x="820" y="176" width="320" height="60" rx="8" fill="url(#chip)" stroke="#2b6c93"/>
  <text x="838" y="202" fill="#cfeefc" font-size="14" font-weight="700">skidbladnir::service</text>
  <text x="838" y="223" fill="#8fbcd4" font-size="12">ServiceSpec · Lifecycle · ensure_system_user</text>

  <rect x="820" y="300" width="320" height="60" rx="8" fill="url(#chip)" stroke="#2b6c93"/>
  <text x="838" y="326" fill="#cfeefc" font-size="14" font-weight="700">edda/nornir-service</text>
  <text x="838" y="347" fill="#8fbcd4" font-size="12">the ONE tonic serve loop + auth interceptor</text>

  <rect x="820" y="430" width="320" height="60" rx="8" fill="url(#chip)" stroke="#2b6c93"/>
  <text x="838" y="456" fill="#cfeefc" font-size="14" font-weight="700">facett</text>
  <text x="838" y="477" fill="#8fbcd4" font-size="12">look · menu · table · graph3d · helix</text>

  <rect x="820" y="560" width="320" height="60" rx="8" fill="url(#chip)" stroke="#2b6c93"/>
  <text x="838" y="586" fill="#cfeefc" font-size="14" font-weight="700">edda/jera → draupnir</text>
  <text x="838" y="607" fill="#8fbcd4" font-size="12">jobs ledger · ContainerSpec (ONE OCI engine)</text>

  <text x="40" y="628" fill="#6f9bb5" font-size="12">Two brains over one toolbox: nornir governs the workspace, dwarves runs CI; holger consumes the toolbox and stays the registry.</text>
</svg>