dl split: the bin project's production hostname is igneum-dl-bin.vercel.app (the project-team form of a Vercel hostname answers with the SSO redirect, the plain form is the production alias)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-09 07:11:34 +00:00
parent b68baee7e6
commit 8f00bfcdd1
3 changed files with 4 additions and 4 deletions

View file

@ -203,7 +203,7 @@ re-hashed every binary on every manifest publish (17 GB of deploys on the Mac in
- `~/.config/igneum/dl-bin-host`: `user@host` of build-1 (the store and the publisher of the bin project; the Vercel
credential sits there in `~/.vercel-igneum`). `~/.config/igneum/dl-bin-base`: the bin project's production URL
(default `https://igneum-dl-bin-igneum.vercel.app`).
(default `https://igneum-dl-bin.vercel.app`).
- Pid files: `<dlsite>/.publish-bin.pid` on the Mac, `/srv/artefacts/dl-bin/.deploy.pid` on the box; a second run refuses.
- A re-cut under the same file name (a different size) is copied again; a file removed from the folder stays in the
store and keeps answering (the URL rule; prune by hand on the box when a withdrawal must stop serving).

View file

@ -165,7 +165,7 @@ PY
KEEP="$(python3 -c 'import json,sys; a=json.loads(sys.argv[1]); print(" ".join(v for v in a.values() if v))' "$ALIASES_JSON")"
# the binaries live in the project igneum-dl-bin (tools/dl/publish-bin.sh, 9 October 2026); this project rewrites every
# binary path there and the aliases point there directly (a rewrite's destination is never rewritten again)
BIN_BASE="$( [ -f "$CFG/dl-bin-base" ] && tr -d '[:space:]' < "$CFG/dl-bin-base" || echo https://igneum-dl-bin-igneum.vercel.app)"
BIN_BASE="$( [ -f "$CFG/dl-bin-base" ] && tr -d '[:space:]' < "$CFG/dl-bin-base" || echo https://igneum-dl-bin.vercel.app)"
log "aliases (vercel.json rewrites under /public/, served from $BIN_BASE):"
python3 -c 'import json,sys; a=json.loads(sys.argv[1]); [print(" /public/%s -> %s" % (k, (sys.argv[2] + "/dl/public/" + v) if v else "(no file yet; alias left out)")) for k,v in a.items()]' "$ALIASES_JSON" "$BIN_BASE" | scrub
VERCEL_JSON="$(python3 - "$ALIASES_JSON" "$BIN_BASE" <<'PY'

View file

@ -13,7 +13,7 @@
# What counts as a binary: *.dmg, *.exe, *.zip, *.gz under dl/, and everything under a moves/ folder. Everything else
# stays in the small project (its .vercelignore lists the same patterns).
# Reads ~/.config/igneum/dlsite-dir (IGNEUM_DLSITE overrides), ~/.config/igneum/dl-bin-host (user@host of build-1, required),
# ~/.config/igneum/dl-bin-base (default https://igneum-dl-bin-igneum.vercel.app). Pid files: <dlsite>/.publish-bin.pid on
# ~/.config/igneum/dl-bin-base (default https://igneum-dl-bin.vercel.app). Pid files: <dlsite>/.publish-bin.pid on
# the Mac, <store>/.deploy.pid on the box; a second run refuses (exit 75). Never kills anything.
set -euo pipefail
MODE=run; FORCE=0
@ -23,7 +23,7 @@ DLSITE="${IGNEUM_DLSITE:-}"; [ -n "$DLSITE" ] || { [ -f "$CFG/dlsite-dir" ] && D
[ -n "$DLSITE" ] && [ -d "$DLSITE/dl" ] || { echo "no downloads folder: ~/.config/igneum/dlsite-dir must hold dl/" >&2; exit 1; }
HOST="$( [ -f "$CFG/dl-bin-host" ] && tr -d '[:space:]' < "$CFG/dl-bin-host" || true)"
[ -n "$HOST" ] || { echo "no store host: ~/.config/igneum/dl-bin-host must hold user@host of build-1 (the box that publishes the bin project)" >&2; exit 1; }
BASE="$( [ -f "$CFG/dl-bin-base" ] && tr -d '[:space:]' < "$CFG/dl-bin-base" || echo https://igneum-dl-bin-igneum.vercel.app)"
BASE="$( [ -f "$CFG/dl-bin-base" ] && tr -d '[:space:]' < "$CFG/dl-bin-base" || echo https://igneum-dl-bin.vercel.app)"
STORE=/srv/artefacts/dl-bin
SSH=(ssh -o BatchMode=yes -o ConnectTimeout=15 "$HOST")
log() { echo "publish-bin: $*"; }