Zomg publishes two public surfaces:
  • zomg.ai: Cloudflare Pages site and installer endpoint.
  • zomg-* archives: CLI release artifacts on GitHub Releases and optionally Cloudflare R2.

Cloudflare site

Deploy:
CLOUDFLARE_PAGES_PROJECT=zomg-sh \
just deploy-zomg-site
For local deploys, authenticate once with wrangler login. CI deploys use the GitHub secrets listed below. The site worker (ts/apps/zomg-site/_worker.js) checks each request to /. When the request looks like a CLI fetcher (the User-Agent matches curl, wget, fetch, or httpie, or the Accept header is non-HTML), it serves ts/apps/zomg-site/install.sh. Browsers get index.html. Both forms install the CLI:
curl -fsSL https://zomg.ai | sh
curl -fsSL https://zomg.ai/install.sh | sh
GitHub Actions workflow: .github/workflows/deploy-site.yml. Required GitHub secrets:
  • CLOUDFLARE_API_TOKEN
  • CLOUDFLARE_ACCOUNT_ID
Optional GitHub variable:
  • CLOUDFLARE_PAGES_PROJECT (defaults to zomg-sh)

CLI artifacts

Build one or more targets:
just release-cli x86_64-unknown-linux-gnu
ZOMG_CLI_TARGETS="x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu" ./scripts/release/build-cli.sh
Artifacts land in dist/cli/:
zomg-x86_64-unknown-linux-gnu.tar.gz
zomg-x86_64-unknown-linux-gnu.tar.gz.sha256
Supported release targets:
  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • x86_64-apple-darwin
  • aarch64-apple-darwin
Linux cross-builds use cargo-zigbuild. macOS artifacts are built on matching macOS GitHub runners. The API can serve CLI archives for zomg upgrade from ZOMG_CLI_RELEASES_DIR, defaulting to /var/lib/boxes/releases/cli. Expected layout:
<ZOMG_CLI_RELEASES_DIR>/
  0.2.0/
    zomg-x86_64-unknown-linux-gnu.tar.gz
    zomg-x86_64-unknown-linux-gnu.tar.gz.sha256
scripts/release/build-cli.sh also writes dist/cli/releases/<version>/. API endpoints:
  • GET /v1/cli/releases
  • GET /v1/cli/releases/latest/<target>/archive
  • GET /v1/cli/releases/<version>/<target>/archive
  • GET /v1/cli/releases/latest/<target>/checksum
  • GET /v1/cli/releases/<version>/<target>/checksum

GitHub Releases

Upload local artifacts:
ZOMG_RELEASE_TAG=v0.2.0 just release-cli-github
GitHub Actions workflow: .github/workflows/release-cli.yml. Tag pushes (v*) build and publish release assets automatically.

Cloudflare R2

Upload local artifacts:
CLOUDFLARE_ACCOUNT_ID=... \
AWS_ACCESS_KEY_ID=... \
AWS_SECRET_ACCESS_KEY=... \
ZOMG_R2_BUCKET=zomg-downloads \
ZOMG_R2_PREFIX=releases/latest \
just release-cli-r2
Required GitHub secrets for R2 uploads:
  • CLOUDFLARE_ACCOUNT_ID
  • CLOUDFLARE_R2_ACCESS_KEY_ID
  • CLOUDFLARE_R2_SECRET_ACCESS_KEY
  • ZOMG_R2_BUCKET
Workflow dispatch can enable R2 upload and choose r2_prefix.

Verification

just verify-release-assets
just verify-setup-bootstrap