feat(release): stage GitWorkshop and next node updates

This commit is contained in:
archipelago
2026-09-09 18:15:21 -04:00
parent 973356df16
commit f5c0ba85cd
97 changed files with 5716 additions and 1327 deletions
+29 -5
View File
@@ -38,6 +38,20 @@ ok() { echo -e "${GREEN}[$(date '+%H:%M:%S')] OK${NC} $*" | tee -a "$LOG_FILE";
err() { echo -e "${RED}[$(date '+%H:%M:%S')] ERROR${NC} $*" | tee -a "$LOG_FILE"; }
warn(){ echo -e "${YELLOW}[$(date '+%H:%M:%S')] WARN${NC} $*" | tee -a "$LOG_FILE"; }
ensure_ngit_runtime() {
local installer="$REPO_DIR/image-recipe/configs/install-ngit.sh"
if [ ! -f "$installer" ]; then
warn "Pinned ngit installer missing; Nostr source cloning remains unavailable"
return 0
fi
log "Checking pinned ngit source-contribution runtime..."
if sudo sh "$installer" >>"$LOG_FILE" 2>&1; then
ok "ngit source-contribution runtime ready"
else
warn "Unable to install ngit; HTTP source access remains available"
fi
}
cleanup() {
rm -f "$LOCK_FILE"
}
@@ -142,6 +156,13 @@ for pkg in python3-venv binutils libpython3.13; do
fi
done
# Retry the pinned runtime on already-current nodes without making them rebuild
# the backend. Nodes updating from an older checkout run it again after pull,
# when the installer first becomes available.
if [ -f "$REPO_DIR/image-recipe/configs/install-ngit.sh" ]; then
ensure_ngit_runtime
fi
# Fetch latest
log "Fetching from origin..."
git fetch origin main --quiet 2>>"$LOG_FILE"
@@ -188,6 +209,8 @@ git pull origin main --ff-only 2>>"$LOG_FILE" || {
exit 1
}
ensure_ngit_runtime
NEW_VERSION=$(git rev-parse --short HEAD)
log "Now at: $NEW_VERSION"
@@ -321,17 +344,18 @@ fi
UI_DOCKER_DEST="/opt/archipelago/docker"
sudo mkdir -p "$UI_DOCKER_DEST"
UI_REBUILD_LIST=""
# fips-ui and fedimint-ui are synced but NOT added to UI_REBUILD_LIST below:
# container-specs.sh has no spec for either (and their container names break
# fips-ui, fedimint-ui, and archipelago-source are synced but NOT added to
# UI_REBUILD_LIST below:
# container-specs.sh has no spec for these apps (and their container names break
# the archy-<ui> assumption — the FIPS one is plain `fips-ui`). Their rebuilds
# come from elsewhere — the daemon's companion installer for fedimint-ui, the
# orchestrator's build context for fips-ui — but BOTH read
# orchestrator's build context for fips-ui and archipelago-source — but all read
# /opt/archipelago/docker/<ui>, and nothing was ever updating that directory.
# So source edits to those two trees reached nodes through no path at all:
# So source edits to these trees previously reached nodes through no path at all:
# their nginx kept listening on 0.0.0.0 and served the Guardian and FIPS
# screens unauthenticated on every interface (found by scanning a test node
# from outside, 2026-08-05 — the in-node audit could not see them).
for ui in bitcoin-ui lnd-ui electrs-ui fips-ui fedimint-ui; do
for ui in bitcoin-ui lnd-ui electrs-ui fips-ui fedimint-ui archipelago-source; do
src="$REPO_DIR/docker/$ui"
dst="$UI_DOCKER_DEST/$ui"
[ -d "$src" ] || continue