Global install: root branch in install.sh for multi-user hosts #71
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:cli
scope:drill
scope:host
scope:installer
scope:templates
scope:tiers
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/box#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?
Context
box installs strictly per-user today:
install.shputs the tree in$HOME/.local/share/boxand the symlink in$HOME/.local/bin— there is no root branch. On multi-user hosts (the dev-server will have three operators, per the identity model in heavy-duty/rig#24 / heavy-duty/rig#25) every new operator must re-run the installer. box should install globally once, like rig already does.What changes
install.sh: mirror rig'sinstall.shroot branch — whenid -uis 0, defaultDESTto a system location (/opt/boxor/usr/local/share/box— pick one in the plan) andBINDIRto/usr/local/bin; keep the per-user defaults otherwise.BOX_HOME/BOX_BINoverrides keep working.bin/box: verify the install-root resolution (symlink-relative) works from the system location for non-root callers — the tree must be world-readable, no writes into the tree at runtime.docs/box-design.mdif it mentions install paths): global install is the fleet path (one install, users granted access via group membership); per-user stays the solo-host path.Interplay
setup-hostremains per-user in one respect (it adds$USERto an Incus group and requires re-login) — with rig#24 owning group membership on fleet hosts, setup-host's group step becomes the solo-host self-serve path. Document both owners so they don't drift.rm -rf $DEST && mvshape as today).Non-goals
Acceptance
curl … install.sh | bashlands the tree in the system location,boxon PATH for all users, tree owned by root and world-readable.box templates,box list,box newwork against the global install (given group access).Companion projects issue: https://github.com/heavy-duty/box/issues/72