Skip to content

feat(release): sh.boxlite.ai Cloudflare Worker for installer#510

Merged
DorianZheng merged 2 commits into
mainfrom
feat/sh-boxlite-ai-installer
May 12, 2026
Merged

feat(release): sh.boxlite.ai Cloudflare Worker for installer#510
DorianZheng merged 2 commits into
mainfrom
feat/sh-boxlite-ai-installer

Conversation

@DorianZheng

Copy link
Copy Markdown
Member

Summary

  • Add Cloudflare Worker at sh.boxlite.ai that proxies the latest GitHub Release's install.sh, enabling curl -fsSL https://sh.boxlite.ai | sh as a memorable entry point alongside the existing long URL.
  • Worker is a byte-passthrough with 5-min edge cache and Content-Type: text/x-shellscript override; the install.sh trust model (sigstore attestation + embedded checksums + .sha256 sidecars) stays anchored to the GitHub Release, not to the Worker.
  • Update README + install.sh Usage comment to surface sh.boxlite.ai as the primary URL; verify-before-pipe section deliberately keeps the GitHub Releases URL since that's where the attestation lives.
  • Versioning UX unchanged: BOXLITE_VERSION=v0.9.4 curl -fsSL https://sh.boxlite.ai | sh works (matches rustup/pnpm/mise env-var pattern).
  • No CI workflow: Worker code rarely changes, deploy is manual via npx wrangler deploy.

Test plan

  • cd scripts/release/sh-installer && npx wrangler login && npx wrangler deploy (one-time setup; auto-provisions DNS + TLS for sh.boxlite.ai)
  • curl -I https://sh.boxlite.ai returns 200, content-type: text/x-shellscript, server: cloudflare
  • diff <(curl -fsSL https://sh.boxlite.ai) <(curl -fsSL https://github.com/boxlite-ai/boxlite/releases/latest/download/install.sh) shows no diff
  • curl -fsSL https://sh.boxlite.ai | sh installs boxlite to ~/.local/bin/
  • BOXLITE_VERSION=v0.9.4 curl -fsSL https://sh.boxlite.ai | sh pins to v0.9.4
  • curl -X POST https://sh.boxlite.ai returns 405 Method not allowed

Add a Cloudflare Worker that serves the latest GitHub Release's install.sh
at https://sh.boxlite.ai, so users can run:

    curl -fsSL https://sh.boxlite.ai | sh

The Worker is a byte-passthrough proxy with a 5-min edge cache and a
Content-Type override (text/x-shellscript), so the install.sh trust model
(sigstore attestation, embedded SHA256 checksums, .sha256 sidecars on the
release) stays anchored to the GitHub Release. README's verify-before-pipe
section keeps the long GitHub URL for that reason.

Deploy is manual (npx wrangler deploy from scripts/release/sh-installer/);
Worker source rarely changes so a CI workflow is overkill.
sh.boxlite.ai is the convenience entry point; the long GitHub Releases URL
is the verifiable upstream (it's what gh attestation verify covers).
Listing both in the Usage header lets readers pick the trust posture they
want without digging into the README.
@DorianZheng DorianZheng merged commit 16cca41 into main May 12, 2026
19 checks passed
@DorianZheng DorianZheng deleted the feat/sh-boxlite-ai-installer branch May 12, 2026 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant