setup.sh: four gaps vs. CF installer pattern (hooks path, license key, port, docs URL) #71
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/peregrine#71
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Reviewing
setup.shagainst the CF installer pattern documented incircuitforge-plans/shared/2026-04-05-installer-pattern.md. Four gaps found:1. Hardcoded developer-machine path in
activate_git_hooks()This path only exists on the dev machine. Self-hosters silently fall through to the
.githooks/fallback, which is fine, but the hardcoded path is surprising. Should probe a relative or standard location, or drop the absolute-path check entirely and go straight to thecore.hooksPathfallback.2. No license key capture
cf-orchinstaller asks for an optionalCFG-XXXX-…key and writesCF_LICENSE_KEYandHEIMDALL_URLto.env, enabling Heimdall validation for paid-tier self-hosters. Peregrine has the same licensing model butsetup.shnever captures a key. Paid users have to find and edit.envmanually.Add a skip-able prompt before
setup_env():If provided, write
CF_LICENSE_KEY=<key>andHEIMDALL_URL=https://license.circuitforge.techinto.env.3. Port mismatch in next-steps and docs
setup.shline 432 anddocs/getting-started/installation.mdboth direct users tohttp://localhost:8501, but Docker runs on 8502. The 8501 reference is the legacy bare-metal port.Fix: echo
$STREAMLIT_PORTfrom.envin the next-steps output, or hard-code 8502.4. Stale git URL in installation docs
docs/getting-started/installation.mdStep 1 still references:Should be:
5. (Lower priority) No bare-metal / conda path
cf-orchsupports both Docker Compose and a conda/pip venv path. Peregrine’s stack is heavier so Docker is the right default, but a bare-metal option would help users on locked-down systems. Not blocking.Context: discovered while reviewing Peregrine’s installer against the pattern produced during
cf-orchinstaller testing onstrahl(2026-04-05/06).Fixed in commit
3458122. All four items addressed:Hardcoded hooks path — removed the
/Library/Development/CircuitForge/circuitforge-hooks/install.shcheck entirely;activate_git_hooks()now goes straight to the.githooks/+core.hooksPathfallback, which is what self-hosters always hit anyway.License key capture — added
capture_license_key(), called aftersetup_env()creates.env. Prompts for an optionalCFG-XXXX-…key, validates the format, writesCF_LICENSE_KEY=andHEIMDALL_URL=https://license.circuitforge.techinto.env. Silently skipped in non-interactive mode.Port in next-steps — reads
STREAMLIT_PORTfrom.envat the end ofmain()instead of hardcoding8501. Also updated.env.exampledefault from8501→8502(Docker default).Stale git URL — updated
docs/getting-started/installation.mdclone URL togit.opensourcesolarpunk.com/Circuit-Forge/peregrine.Bonus (from user): renamed
setup.sh→install.shto standardise with the cf-orch installer pattern. Updated all references acrossmanage.sh,Makefile,CONTRIBUTING.md,README.md, anddocs/.