ffee0144
docs: the quickstart hands you the client before it uses one
a73x 2026-08-19 04:55
Commit message
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 |