# Deployment decisions

## Choose the runtime model first

| Goal | Consider first | Verify |
| --- | --- | --- |
| Git-driven multi-region (US/EU) runtime and managed data | Deno Deploy | current regions, quotas, build and runtime APIs |
| System packages, Kubernetes, portable image | Docker | image variant, signals, filesystem user, health checks |
| Existing VM or PaaS | native Deno or container | installed version, persistent volumes, network policy |
| Single-file CLI | `deno compile` | target architecture, dynamic assets, permissions, native code |

## Platform-independent contract

Document at least:

- entry point and start command;
- bind address and `PORT` behavior;
- required Deno permissions;
- environment variable names, with no secrets in images or logs;
- `/health` or an equivalent platform signal;
- SIGTERM, timeout, retry, and idempotency boundaries;
- lockfile, Deno version, and rollback artifact.

<Callout type="warn" title="Build environment is not request runtime">
A platform may use Deno to install or build and execute requests in a different isolate. Verify the build command, request runtime, Web/Node API support, and persistence semantics separately.
</Callout>

Continue with [Deno Deploy](/en/docs/deploy/deno-deploy), [Data and cron](/en/docs/deploy/data-and-cron), [Classic migration](/en/docs/deploy/classic-migration), [Docker](/en/docs/deploy/docker), or the [production baseline](/en/docs/deploy/production-baseline).
