<!-- nornir:class: guide -->
# Guide — About + the jera-backed Tools demo
> **Class:** `guide`. Design: [`common-framework-design.md`](common-framework-design.md).
> Plain-language: [`common-framework-for-idiots.md`](common-framework-for-idiots.md).
## About holger
- **Open it:** the `ℹ About` button in the header, or the command palette (Ctrl-K →
"About holger"), or the menu bar's `Help · About holger`.
- **What it shows:** the holger hero logo, the wordmark, the running **version**, the
tagline, and the shared framework components holger is built on (skidbladnir ·
nornir-service · jera · facett). Dismiss with the window ✕ or `Close`.
- **Headless:** the identity is observable without a screen —
`app.state_json()["about"]` carries `open`, `wordmark`, `version`, and `framework`.
## Sign in (the shared device-code pane)
- **Open it:** the **Sign in** tab (or the command palette → `signin`). It mounts the
shared `facett_auth_ui::LoginPane`, the SAME reusable pane korp uses.
- **Flow:** Sign in → a **user-code + verification URL** (RFC 8628 device code, via edda's
`nornir-auth-client`) → poll → the signed-in **subject** shows, with credential **names**
only (never a token value) → Sign out. Config is read from the environment.
## Responsive shell (auto-fold)
The tabbed shell is the shared `facett_app::scene`. On a narrow (**phone-class**, < 600 pt)
window the `⚓ static` toggle + look switcher fold behind one `⚙ Controls` drawer so the tab
canvas keeps the screen; `state_json.controls_folded` / `state_json.scene` report the fold.
## Tools · Demo appliance (start a container through jera)
The demo stands up a small **pinned** artifact registry
(`docker.io/library/registry:2.8.3`) as a tracked **jera** job — the same job manager
holger-server routes promotions/GC through.
- **Run it:** Tools tab → `6 · demo appliance` → **Start demo appliance… (as a jera
job)**. The pane shows the image, name, port, URL, and — after clicking — the jera
**job id** and status.
- **Daemon-free by default:** the standard build records the bring-up as a durable
`BOOT_CONTAINER` job (status `dispatched`) without a container runtime — you can list
it later (`nornir jobs`). Nothing is spawned ad-hoc.
- **Boot it for real:** build with the `containers` feature —
```bash
cargo run -p holger-server-ui --features gui,containers --bin holger-server-ui
```
This turns on `jera/container-oci` (→ draupnir's OCI engine), so clicking Start
actually boots the registry; reach it at `http://127.0.0.1:5000`. Override the image
with `HOLGER_DEMO_IMAGE=…`.
## Where the ledger lives
`HOLGER_DATA/holger-server-ui-jobs/jobs.redb` when `HOLGER_DATA` is set, else a temp dir. It
is the same `jera::jobs::JobStore` redb list every suite app writes to.