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.
| Framework | Signal that triggers detection |
|---|---|
| HTML | index.html at project root |
| Next.js | next.config.js / next.config.mjs |
| Flask | flask in requirements.txt |
| Express | express in package.json |
| Go | go.mod at project root |
| Docker | Dockerfile at project root |
What happens between command and URL
Each leash deploy goes through the same pipeline:
- Classify the workload. Inspect signals above, decide framework + lane (prototype vs. production).
- Build the container. Run a framework-specific buildpack (or your Dockerfile) to produce an image.
- Push to Artifact Registry. The image lands in your org's registry, tagged with the deploy ID.
- Deploy a Cloud Run revision. Wire env vars from the dashboard, mount secrets, route to the revision.
- 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.