nordisk/gunnar
assets/gunnar-setup-1.svg
<svg xmlns="http://www.w3.org/2000/svg" width="707" height="242" viewBox="0 0 707 242" font-family="monospace" font-size="13">
<!-- GENERATED by `cargo xtask svg` from xtask/src/setup_svg.rs. Do not hand-edit:
every arrow starts on the box the verb is typed against, and moving a line
instead of the model is how a diagram starts telling an operator to run
`promote` on the wrong machine. -->
<style>
.box{rx:6;ry:6;stroke-width:1.5}
.dim{fill:#9a948a}
.hdr{fill:#e8e4da;font-size:15px;font-weight:bold}
.kick{fill:#9a948a;font-size:11px}
.name{fill:#e8e4da;font-size:14px;font-weight:bold}
.verb{font-size:12px;font-weight:bold}
.note{fill:#9a948a;font-size:11px}
.flow{stroke:#6fd3f5;stroke-width:1.6;fill:none;marker-end:url(#flow)}
.flip{stroke:#4fae76;stroke-width:1.6;fill:none;marker-end:url(#flip);stroke-dasharray:4 3}
</style>
<defs>
<marker id="flow" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#6fd3f5"/></marker>
<marker id="flip" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#4fae76"/></marker>
</defs>
<rect width="707" height="242" fill="#14110d"/>
<text x="16" y="28" class="hdr">§1 · one gunnar server</text>
<text x="16" y="50" class="dim">one appliance, one person: control it over :50051, push to it over :2222</text>
<g transform="translate(-8 -130)">
<text x="300" y="206" class="kick">the main device</text>
<rect class="box" x="300" y="214" width="280" height="120" fill="#123448" stroke="#4f9ec0"/>
<text x="312" y="238" class="name">primary appliance</text>
<text x="312" y="258" class="dim">writable — clients push here</text>
<text x="312" y="275" class="dim">git-ssh :2222 · control :50051</text>
<text x="312" y="292" class="dim">/data survives a reinstall</text>
<text x="24" y="228" class="kick">you</text>
<rect class="box" x="24" y="236" width="160" height="76" fill="#22201c" stroke="#9a948a"/>
<text x="36" y="260" class="name">stock git</text>
<text x="36" y="280" class="dim">clone · push</text>
<path class="flow" d="M190,260 L294,260"/>
<text x="242" y="253" text-anchor="middle" class="verb" fill="#6fd3f5">SSH :2222</text>
<text x="242" y="275" text-anchor="middle" class="note">clone / push</text>
<path class="flow" d="M190,300 L294,300"/>
<text x="242" y="293" text-anchor="middle" class="verb" fill="#6fd3f5">gRPC :50051</text>
<text x="242" y="315" text-anchor="middle" class="note">control verbs</text>
</g>
<text x="16" y="228" class="dim">`bootstrap` works once, ever; `status` is the one question an unclaimed server answers</text>
</svg>