Luigit
repositories / bugabinga.net

bugabinga.net

personal infrastructure for bugabinga!

owned by admin

.system/specs/BB-SPEC-BWAY3QWL-luigit-public-git-web-interface/assets/repository-landing.html

Raw
<style>
:root{color-scheme:light dark;--bg:#ededed;--fg:#121212;--panel:#dbdbdb;--muted:#3b3b3b;--faint:#6f6f6f;--line:#9d9d9d;--accent:#ae2eae;--info:#116477;--focus:#184e5b;--local:#715696;--global:#4f3c69;--code:#e4e4e4;--radius:3px;font:16px/1.58 "IBM Plex Sans",system-ui,sans-serif}@media(prefers-color-scheme:dark){:root{--bg:#121212;--fg:#ededed;--panel:#242424;--muted:#a7a7a7;--faint:#777;--line:#555;--accent:#d151d1;--info:#3ec5e3;--focus:#7ba1aa;--local:#b59ae4;--global:#dfd3f3;--code:#191919}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}a{color:var(--info);text-decoration-thickness:1px;text-underline-offset:3px}button,input{font:inherit;color:inherit}.shell{min-height:760px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 34%),var(--bg)}.top{display:grid;grid-template-columns:auto minmax(12rem,35rem) auto;align-items:center;gap:1.1rem;padding:.75rem clamp(1rem,3vw,2.2rem);border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);background:color-mix(in srgb,var(--bg) 92%,var(--panel))}.brand{font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--global)}.search{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.52rem .7rem;background:var(--panel)}.theme{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:.45rem}.theme:focus-visible,a:focus-visible,input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.repo{max-width:1160px;margin:auto;padding:2rem clamp(1rem,4vw,3rem) 5rem}.crumb{font:13px/1.3 ui-monospace,monospace;color:var(--faint);margin-bottom:.6rem}.headline{display:flex;justify-content:space-between;gap:2rem;align-items:end}.headline h1{font-size:clamp(1.9rem,6vw,3.3rem);line-height:1;margin:.15rem 0}.headline p{margin:.7rem 0 0;color:var(--muted)}.owner{font-size:.85rem;color:var(--muted);white-space:nowrap}.tabs{display:flex;gap:1.35rem;overflow:auto;margin:1.7rem 0 2.2rem;border-bottom:1px solid var(--line)}.tabs a{padding:.7rem 0;color:var(--muted);text-decoration:none;white-space:nowrap}.tabs .active{color:var(--fg);font-weight:700;border-bottom:3px solid var(--accent)}.content{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:3rem}.readme{min-width:0;max-width:760px}.readme-label{font:700 12px/1 ui-monospace,monospace;color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.3rem}.readme h2{font-size:2rem;line-height:1.1;margin:0 0 .5rem}.readme h3{margin:2.2rem 0 .55rem;color:var(--global)}.readme p{max-width:68ch}.readme pre{overflow:auto;padding:1rem;border-left:3px solid var(--accent);background:var(--code);font:14px/1.5 ui-monospace,monospace}.rail{border-left:1px solid var(--line);padding-left:1.25rem}.rail section{padding:0 0 1.35rem;margin:0 0 1.35rem;border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent)}.rail h2,.source h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:var(--faint);margin:0 0 .65rem}.clone{display:flex;gap:.4rem}.clone code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--code);padding:.45rem;font-size:.72rem}.clone button{border:1px solid var(--line);background:var(--panel);cursor:pointer}.metric{display:flex;justify-content:space-between;margin:.35rem 0;font-size:.88rem}.metric strong{font-family:ui-monospace,monospace}.commit{font-size:.85rem}.commit b{display:block;margin-bottom:.25rem}.commit span{color:var(--faint)}.source{grid-column:1/-1;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:1rem}.source-head{display:flex;justify-content:space-between;align-items:baseline}.source ul{list-style:none;padding:0;margin:.7rem 0}.source li{display:grid;grid-template-columns:1fr minmax(10rem,2fr) auto;gap:1rem;padding:.55rem 0;border-top:1px solid color-mix(in srgb,var(--line) 35%,transparent);font-size:.86rem}.source li span,.source li time{color:var(--faint)}.source li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.top{grid-template-columns:1fr auto}.search{grid-column:1/-1;grid-row:2}.headline{align-items:start;flex-direction:column;gap:.5rem}.tabs{margin-top:1.2rem}.content{display:flex;flex-direction:column;gap:2rem}.readme{max-width:none}.rail{border-left:0;border-top:1px solid var(--line);padding:1.5rem 0 0}.source{margin-top:0}.source li{grid-template-columns:1fr auto}.source li span{display:none}}
</style><div class="shell"><header class="top"><div class="brand">Luigit</div><input class="search" aria-label="Search" placeholder="Search repositories, code, commits, notes…"><button class="theme" aria-label="Theme: automatic">◐</button></header><main class="repo"><div class="crumb">repositories / bugabinga.net</div><header class="headline"><div><h1>bugabinga.net</h1><p>Personal infrastructure for bugabinga!</p></div><div class="owner">owned by <a href="mailto:oliver@bugabinga.net">Oliver Jan Krylow</a></div></header><nav class="tabs" aria-label="Repository"><a class="active" href="#">README</a><a href="#">Source</a><a href="#">History</a><a href="#">Refs</a><a href="#">Compare</a><a href="#">Notes</a></nav><div class="content"><article class="readme"><div class="readme-label">README.md · trunk</div><h2>bugabinga.net</h2><p>Private-cloud infrastructure managed with OpenTofu. The repository owns the public relay, klops services, Luci CI, public sites, and deployment assets.</p><h3>Operate</h3><p>Read-only checks run before planning. Every deployment is reviewed before apply.</p><pre><code>just check read
just tofu plan</code></pre><h3>Topology</h3><p>One Hetzner relay owns stable public ingress. Klops runs application workloads behind a dual-stack WireGuard link.</p></article><aside class="rail" aria-label="Repository context"><section><h2>Clone over SSH</h2><div class="clone"><code>git clone ssh://vcs.bugabinga.net/bugabinga.net</code><button aria-label="Copy clone command">⧉</button></div></section><section><h2>Default branch</h2><div class="metric"><span>branch</span><strong>trunk</strong></div><div class="metric"><span>commits</span><strong>284</strong></div><div class="metric"><span>notes</span><strong>7</strong></div></section><section><h2>Latest change</h2><div class="commit"><b>chore: harden key generation script</b><span>3a4707dc · 29 Aug · signed</span></div></section></aside><section class="source"><div class="source-head"><h2>Default branch source</h2><a href="#">Browse all files</a></div><ul><li><a href="#">.system/</a><span>docs: replace legacy infrastructure records</span><time>29 Aug</time></li><li><a href="#">modules/</a><span>refactor: centralize brand SVG asset</span><time>29 Aug</time></li><li><a href="#">services/</a><span>feat: expose durable in-flight state</span><time>5 Aug</time></li><li><a href="#">README.md</a><span>docs: clarify deployment workflow</span><time>3 Aug</time></li></ul></section></div></main></div>