Usage
deploy command builds your Docker image, converts it to a Firecracker microVM, and starts it on the platform.
What happens during a deploy
- Build context upload — Your project directory is packaged as a gzipped tarball and uploaded.
- Image build — The Docker image is built on ZWRM’s build servers. Build logs are streamed to your terminal in real-time.
- VM creation — The image is converted to a Firecracker VM and started.
- Health check — If your app has a public URL, ZWRM checks that it returns a healthy response.
- Done — You’ll see the machine IPs and SSH access information.
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | from zwrm.toml | Application name |
--context | string | . | Build context directory |
--force-build | bool | false | Force rebuild, bypass cache |
--replicas | int | 1 | Number of VM instances to deploy |
Examples
Deploy the current directory:Build caching
ZWRM uses content-addressed caching based on your Dockerfile, build context, and build args. If nothing has changed, the build is skipped entirely. Use--force-build to bypass the cache when needed.
Health checks
After deploying, ZWRM automatically health-checks your app’s public URL:- Deployment succeeds after receiving a 2xx or 3xx response.
- 502 (Bad Gateway) responses are retried for up to 30 seconds — this is normal while the VM boots.
- If the health check fails, you’ll see hints about common issues.
Creating an app without deploying
When you runzwrm deploy for the first time, the app is created automatically if it doesn’t already exist. If you just want to create the zwrm.toml without deploying, use zwrm init:
| Flag | Description |
|---|---|
--name | Application name (defaults to current directory name) |
--dockerfile | Path to Dockerfile (auto-detected) |
--no-prompt | Use defaults without prompting |