Deploy

Terminal

$ leash deploy

From your project root. Detects your framework, builds, deploys to Cloud Run.

What gets detected

Leash inspects your project for one of these signals and picks the matching build strategy. No config files, no flags.

FrameworkSignal that triggers detection
HTMLindex.html at project root
Next.jsnext.config.js / next.config.mjs
Flaskflask in requirements.txt
Expressexpress in package.json
Gogo.mod at project root
DockerDockerfile at project root

What happens between command and URL

Each leash deploy goes through the same pipeline:

  1. Classify the workload. Inspect signals above, decide framework + lane (prototype vs. production).
  2. Build the container. Run a framework-specific buildpack (or your Dockerfile) to produce an image.
  3. Push to Artifact Registry. The image lands in your org's registry, tagged with the deploy ID.
  4. Deploy a Cloud Run revision. Wire env vars from the dashboard, mount secrets, route to the revision.
  5. Health check + route traffic. New revision must respond before traffic flips to it.

Every app gets a unique URL under un.leash.build: https://{app-name}.un.leash.build. HTTPS is automatic.

Per-framework guides

Each framework has a dedicated guide with build details, runtime config, and common gotchas.