node: one-shot install.sh for a fresh Pi; retire setup.sh (node-26#4)
install.sh is the `curl -fsSL <url> | sudo bash -s -- --token ...` bootstrap:
preflight (root/arch/apt/SDR) → install docker + compose + git + jq → clone
node-26 at a pinned ref (default `v1`, `--track-main` opt-in) → write .env
non-interactively from flags/env with a /dev/tty interactive fallback →
enroll with C2 (POST /nodes/enroll, poll GET /nodes/{id}/credentials, matches
drb-c2-core/app/routers/enrollment.py exactly) and write configs/credentials.json
→ docker compose pull && up -d (prebuilt; --build opts into the ~1h op25 build)
→ print the admin-approval step. Idempotent: re-run picks up the api_key after
approval; existing .env is preserved.
- setup.sh deleted — two scripts writing .env drift. install.sh owns it now.
- Makefile `setup:` no longer calls the removed script (cp .env.example fallback).
- README Setup section rewritten around the one-liner; `make setup`/`make up`
kept as the local-dev path.
Notes carried in the script header: git.vpn.cusano.net is public (D1, settled);
`v1` must be re-cut at this change's merge commit so the tag actually contains
install.sh. Standing hazard D3: docker-compose.yml bind-mounts the app source
over the image, so a pinned ref and the pulled image tags must not diverge.
Client-side enrollment still belongs in the edge-node app (mqtt_manager.py:73-85);
install.sh doing it is the interim. Tracked for follow-up.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
0c08275482
commit
5b0048e8db
@@ -1,7 +1,12 @@
|
||||
.PHONY: setup test up up-prebuilt pull down logs
|
||||
|
||||
# Local-dev only: seed .env from the example so `make up` has something to read.
|
||||
# A real edge node is provisioned with install.sh (one-shot bootstrap for a
|
||||
# clean Pi — clones, enrolls with C2, pulls prebuilt images):
|
||||
# curl -fsSL https://git.vpn.cusano.net/logan/node-26/raw/tag/v1/install.sh | sudo bash -s -- --help
|
||||
setup:
|
||||
@bash setup.sh
|
||||
@test -f .env || cp .env.example .env
|
||||
@echo ".env ready — edit it, then 'make up' (local build) or 'make up-prebuilt'"
|
||||
|
||||
# Run pytest inside the running edge-node container.
|
||||
# Requires: docker compose up (or at least the edge-node image built).
|
||||
|
||||
Reference in New Issue
Block a user