diff --git a/design/v1-add-host.html b/design/v1-add-host.html new file mode 100644 index 0000000..6b4b278 --- /dev/null +++ b/design/v1-add-host.html @@ -0,0 +1,347 @@ + + +
+ ++ A focused two-column page, not a modal: the form lives where the cursor + needs it, the contextual help and security footnote live where the eye + naturally drifts. After the form is submitted the same URL renders the + result state — token + install command — so the operator never loses + their place. +
+ ++ Mints a one-time enrolment token (TTL 1 hour) and binds the repo credentials to it. + The token can only be used once — generate a fresh one if it expires or you typed + something wrong. +
++ Run the snippet below on the target box. The host will appear on the + dashboard within a few seconds of the agent connecting. +
+
+ Every reusable piece across the v1 mockups, lifted out and shown beside its
+ states. If something appears in a screen but not here, it shouldn’t — it’s
+ either drift or a candidate for promotion. The Go templates (P1-23
+ onwards) lean on this file: a partial gets a name in here before it gets
+ a {{define}} in the templates.
+
+ Removes prod-cache-01 from + the dashboard and revokes its agent token. Backup data on the + rest-server is left intact — delete that yourself if you want it gone. +
+This action is logged in the audit trail.
+curl -fsSL https://restic.lab.example/install.sh | sudo \ + RM_SERVER=https://restic.lab.example \ + RM_TOKEN=HdqFbQh8U-I1fb52iP1M8qxvoYS5t9VZ-T-yghr_CzA sh+
+ Empty states always pair a one-sentence explanation with a single + primary affordance. Don’t fill the space with stats or graphics — + the void is the message. +
+ ++ Reached by clicking any host name on the dashboard. Persistent header + carries the host’s identity and key vitals; below, four tabs + (Snapshots / Jobs / Repo / Settings) pivot the rest of the page + without losing context. Snapshots is the default — it’s the + thing 90% of operators want to see when they click a host name. +
+ ++ The screen an operator stares at when something is in flight. Header + identifies the job (kind · host · status). A live progress bar shows the + bytes-to-go signal restic emits. The log itself is the focus: monospace, + tight line-height, color reserved for the few lines that matter — events + and stderr. +
+ ++ unable to acquire lock — the repo at rest:https://restic.unraid.lab/build-runner/ is locked by another operation. +
++ The first chrome an operator meets. Everything irrelevant to the act of + signing in is removed: no marketing, no “sign up”, no animated background. + The form lives where the cursor needs it; the build version sits in the + footer so a returning operator can spot a mismatch with the agents. +
+ +