Skip to content

docs: quickstart uses a hub + two spokes - #164

Merged
jamiesun merged 1 commit into
mainfrom
docs/quickstart-two-spokes
Jun 12, 2026
Merged

jamiesun merged 1 commit into
mainfrom
docs/quickstart-two-spokes

Conversation

@jamiesun

Copy link
Copy Markdown
Owner

What

Reworks the Quick Start (EN + ZH) to bring up one hub and two spokes instead of one hub + one spoke.

Why

  • A single spoke never exercises the hub's actual job — relaying between spokes. Two spokes is the smallest mesh that demonstrates the core value.
  • The old ping 10.0.0.1 verify step was a latent inconsistency: a role-derived hub is a pure relay with no overlay address, so there is nothing at 10.0.0.1 to ping.

Changes

  • Two per-link PSKs (KEY_A, KEY_B) — the guide now makes the "one key per link, never reuse" rule concrete.
  • Three configs: hub (lists both spokes), spoke A (10.0.0.2), spoke B (10.0.0.3). The role-derived hub auto-relays (10.0.0.2/32 -> peer 2, 10.0.0.3/32 -> peer 3) with zero manual policy.
  • Verify via relay: ping spoke B from spoke A (A -> hub -> B), watch the hub's relay_* counters. Added a callout that the hub has no overlay address, linking to Roles -> Reaching the hub itself.
  • --check now shows both banners (spoke peers=1, single port; hub peers=2, three ports).
  • Section 4 notes the hub's plan only creates a bare TUN (relay-only); section 5 starts daemons on the hub + both spokes; the Site-to-Site step is corrected to run on the hub for spoke B.

Verification

  • mdbook build passes for EN and ZH
  • python3 docs-site/check-links.py — all links and heading anchors resolve, including the new cross-page anchors #reaching-the-hub-itself / #访问-hub-自身

Docs-only change; no source or behaviour changes.

A single-spoke quickstart never exercises the hub's actual job — relaying
between spokes — and its "ping 10.0.0.1" step was inconsistent with a
role-derived hub, which is a pure relay with no overlay address.

Bring up one hub and two spokes (A=10.0.0.2, B=10.0.0.3):
- Generate two per-link PSKs (KEY_A, KEY_B); the hub lists both spokes,
  each spoke lists the hub. The role-derived hub auto-relays between them
  (10.0.0.2/32->peer2, 10.0.0.3/32->peer3) with zero manual policy.
- Verify by pinging spoke B from spoke A (A -> hub -> B), and watch the
  hub's relay_* counters; note the hub has no overlay address and point
  to Roles -> Reaching the hub itself for making it pingable.
- --check now shows both banners (spoke peers=1 single port, hub peers=2
  three ports). Site-to-Site step corrected to run on the hub for spoke B.

EN + ZH kept in sync; mdbook builds and check-links pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jamiesun
jamiesun merged commit 39d4d86 into main Jun 12, 2026
10 checks passed
@jamiesun
jamiesun deleted the docs/quickstart-two-spokes branch June 12, 2026 07:30
@jamiesun jamiesun mentioned this pull request Jun 12, 2026
jamiesun added a commit that referenced this pull request Jun 12, 2026
Bump build.zig.zon .version 0.8.3 -> 0.9.0 ahead of tagging.

Highlights since v0.8.3:
- feat: configurable MAX_PEERS via the `-Dmax-peers` build option, 1..128 (#165)
- feat: raise the default peer cap to 32 (#166)
- docs: Exit Node & Outbound guide, simplified to the proxy-outbound pattern (#162, #163)
- docs: quickstart now uses a hub + two spokes (#164)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant