a73x

ffee0144

docs: the quickstart hands you the client before it uses one

a73x   2026-08-19 04:55

Commit message
docs: the quickstart hands you the client before it uses one

It said "install the client", then went on to run `eitri ssh` — the one
command a reader does not have yet. The download and `eitri init` now sit
in the path itself, under "Start a client", and connecting explains what
that setup does rather than repeating how to fetch it.

docs/connecting.md
Old New
@@ -20,25 +20,14 @@ signs what you present; **eitri's host CA** (private key on the server) signs
20 what the gate and VMs present. eitri deliberately holds no user signing key — 20 what the gate and VMs present. eitri deliberately holds no user signing key —
21 a server compromise cannot mint user credentials. 21 a server compromise cannot mint user credentials.
22 22
23 ## Get the client 23 ## Start a client
24 24
25 SSH access uses certificates signed by **your** CA—eitri never holds a 25 SSH access uses certificates signed by **your** CA—eitri never holds a
26 user key that can enter your VMs. A guest trusts the CA set it is created with, 26 user key that can enter your VMs. A guest trusts the CA set it is created with,
27 so this comes before your first VM. 27 so this comes before your first VM.
28 28
29 Download the client CLI. It targets the hosted service by default: 29 Install the client as the [quickstart](quickstart.md) shows—one binary, no
30 30 installer—and run the guided setup:
31 ```sh
32 OS=$(uname -s | tr A-Z a-z) ARCH=amd64 # arm64 laptop → ARCH=arm64
33 curl -fsSLO https://eitri.sh/dl/latest/SHA256SUMS
34 V=$(sed -n "s/.*eitri-cli_\(v[^_]*\)_${OS}_${ARCH}\.tar\.gz\$/\1/p" SHA256SUMS)
35 curl -fsSLO "https://eitri.sh/dl/latest/eitri-cli_${V}_${OS}_${ARCH}.tar.gz"
36 sha256sum -c SHA256SUMS --ignore-missing
37 tar xzf "eitri-cli_${V}_${OS}_${ARCH}.tar.gz"
38 sudo install -m 0755 "eitri-cli_${V}_${OS}_${ARCH}/eitri" /usr/local/bin/eitri
39 ```
40
41 Then run the guided setup:
42 31
43 ```sh 32 ```sh
44 eitri init 33 eitri init
docs/quickstart.md
Old New
@@ -19,12 +19,33 @@ Any machine with KVM, or a Mac. **+ Add host** in the console prints a one-shot
19 command; the machine dials out, and no inbound port is needed. 19 command; the machine dials out, and no inbound port is needed.
20 [joining](joining.md) has the commands for both, and the sharp edges of a Mac. 20 [joining](joining.md) has the commands for both, and the sharp edges of a Mac.
21 21
22 ## Set up your laptop 22 ## Start a client
23 23
24 SSH access uses certificates signed by **your** CA—eitri never holds a user key 24 SSH access uses certificates signed by **your** CA—eitri never holds a user key
25 that can enter your VMs. A guest trusts the CA set it is created with, so this 25 that can enter your VMs. A guest trusts the CA set it is created with, so the
26 comes before your first VM: install the client and run `eitri init`, which 26 client and its CA come before your first VM. One binary, targeting the hosted
27 registers a CA if your tenant has none. [connecting](connecting.md) walks it. 27 service by default:
28
29 ```sh
30 OS=$(uname -s | tr A-Z a-z) ARCH=amd64 # arm64 laptop → ARCH=arm64
31 curl -fsSLO https://eitri.sh/dl/latest/SHA256SUMS
32 V=$(sed -n "s/.*eitri-cli_\(v[^_]*\)_${OS}_${ARCH}\.tar\.gz\$/\1/p" SHA256SUMS)
33 curl -fsSLO "https://eitri.sh/dl/latest/eitri-cli_${V}_${OS}_${ARCH}.tar.gz"
34 sha256sum -c SHA256SUMS --ignore-missing
35 tar xzf "eitri-cli_${V}_${OS}_${ARCH}.tar.gz"
36 sudo install -m 0755 "eitri-cli_${V}_${OS}_${ARCH}/eitri" /usr/local/bin/eitri
37 ```
38
39 Then the guided setup:
40
41 ```sh
42 eitri init
43 ```
44
45 It asks for a personal access token—mint one in the console under **Settings →
46 Personal access tokens**—then registers a CA if your tenant has none, generating
47 one only if you have no key it can use, and writes `~/.eitri/config.json`.
48 Nothing happens without a `y`. [connecting](connecting.md) walks each step.
28 49
29 ## Boot a VM 50 ## Boot a VM
30 51
docs/self-hosting.md
Old New
@@ -191,7 +191,7 @@ your console prints the join command; the steps are the same ones
191 one. Self-hosting asks one extra thing of a Mac host: an `arm64` entry in the 191 one. Self-hosting asks one extra thing of a Mac host: an `arm64` entry in the
192 server's `default_images`. 192 server's `default_images`.
193 193
194 ## Your laptop, and a first VM 194 ## Start a client, and a first VM
195 195
196 `eitri init` against your own plane needs to be told where that plane is— 196 `eitri init` against your own plane needs to be told where that plane is—
197 `EITRI_URL=http://192.0.2.10:8080 eitri init`—and writes it to 197 `EITRI_URL=http://192.0.2.10:8080 eitri init`—and writes it to