From 64f3de59fbfcfe8c217f77dc8a93967e3f8d7757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Fri, 14 Aug 2026 05:48:33 +0000 Subject: [PATCH] CLAUDE.md caught up on how setup is run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It said `bun setup` runs officer-setup.sh and was "IN PROGRESS, sections 1-6 of 10". It runs scripts/install.sh, and both halves are finished — machine-setup has 28 sections, officer-setup 11. That line is probably why the orchestrator got doubted: the one document you would check to find out how to install says the wrong entry point. Added what install.sh actually is — an orchestrator that runs the two halves and nothing else, either half runnable alone, both re-runnable, run it as yourself. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 64da028c..b60bb8b7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -219,9 +219,17 @@ bunx tsgo # typecheck (not tsc) bun test # tests bun format # prettier over every dirty file — see the note below before running it bun db:push # apply the schema to Postgres -bun setup # runs scripts/setup/officer-setup.sh — IN PROGRESS, sections 1-6 of 10 +bun setup # runs scripts/install.sh — blank machine to running platform ``` +`scripts/install.sh` is only an orchestrator — it runs the two halves in order and does nothing itself: +`setup/machine-setup/machine-setup.sh` (28 sections: packages, tailnet, runtimes, docker, shell) then +`setup/officer-setup.sh` (11: pre-flight, layout, repository, dependencies, database, environment, secrets, +schema, build, services, verify). Either runs alone — `--machine-only`, `--officer-only`, or by path — because +a machine you already trust needs only the second. Both are re-runnable: each records the steps it finished +and skips them, so stopping halfway costs nothing. **Run it as yourself**; it re-execs through `sudo` when it +needs to, and on macOS never does, because Homebrew refuses to run as root. + Sidecar control is PM2, not npm scripts: `pm2 restart officer-`, `pm2 logs officer-`. See `docs/working-on-officer.md` for which process a given change needs restarted.