[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-deno-deno-deploy":3,"mdc--8xz6kw-key":32,"related-org-deno-deno-deploy":6118,"related-repo-deno-deno-deploy":6191},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":30,"mdContent":31},"deno-deploy","deploy apps to Deno Deploy","Use when deploying Deno apps to production, asking about Deno Deploy, or working with `deno deploy` CLI commands. Covers deployment workflows, environment variables, KV database access, custom domains, the --tunnel flag for local development, and the `deno deploy` command reference.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"deno","Deno","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fdeno.png","denoland",[13,15,18],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Deployment","deployment",{"name":19,"slug":20,"type":14},"Serverless","serverless",89,"https:\u002F\u002Fgithub.com\u002Fdenoland\u002Fskills","2026-07-31T05:52:43.564231","MIT",8,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":29},[],"Modern Deno skills for AI coding assistants. Covers Deno, JSR imports, Fresh, Deno Deploy, and best practices.","https:\u002F\u002Fgithub.com\u002Fdenoland\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fdeno-deploy","---\nname: deno-deploy\ndescription: Use when deploying Deno apps to production, asking about Deno Deploy, or working with `deno deploy` CLI commands. Covers deployment workflows, environment variables, KV database access, custom domains, the --tunnel flag for local development, and the `deno deploy` command reference.\nlicense: MIT\nmetadata:\n  author: denoland\n  version: \"1.5\"\n---\n\n# Deno Deploy\n\nThis skill provides guidance for deploying applications to Deno Deploy.\n\n## Scope Boundaries\n\nThis skill applies **only** to Deno Deploy questions. Follow these rules:\n\n- If the user asks about **AWS Lambda, Vercel, Netlify, Google Cloud Run,\n  Docker, Kubernetes, or any other deployment platform**, answer using that\n  platform directly. Do not mention Deno Deploy at all — not as an alternative,\n  not as a comparison, not as a suggestion.\n- If the user asks about **running a local Deno script** (not deploying), answer\n  the local question directly. Do not mention Deno Deploy, deployment, or the\n  `--tunnel` flag.\n- Do not include `deno deploy` commands, Deno KV, or Deno Deploy environment\n  variable configuration in responses about other platforms or local-only\n  scripts.\n- Only discuss Deno Deploy when the user explicitly asks about Deno Deploy or\n  deploying a Deno application to production.\n\n## Important: Use `deno deploy`, NOT `deployctl`\n\n**Always use the `deno deploy` command.** Do NOT use `deployctl`.\n\n- `deployctl` is for Deno Deploy Classic (deprecated)\n- `deno deploy` is the modern, integrated command built into the Deno CLI\n- **Requires Deno >= 2.4.2** - the `deno deploy` subcommand was introduced in\n  Deno 2.4\n\n## When Unsure About CLI Flags\n\n**Always run `--help` before guessing at flags.** The `deno deploy` subcommand\nhas many flags, and they change between versions. When you're unsure what a\ncommand accepts:\n\n```bash\n# See all subcommands\ndeno deploy --help\n\n# See flags for a specific subcommand\ndeno deploy create --help\ndeno deploy env --help\ndeno deploy database --help\n```\n\nThis takes seconds and prevents repeated trial-and-error failures. Never assume\na flag exists — check first.\n\n## Deployment Workflow\n\n**Always show the core deploy command first** — then explain diagnostic steps.\nWhen a user asks \"how do I deploy?\", lead with the actual command\n(`deno deploy --prod`) before covering pre-flight checks and configuration.\n\n### Step 1: Locate the App Directory\n\nBefore running any deploy commands, find where the Deno app is located:\n\n```bash\n# Check if deno.json exists in current directory\nif [ -f \"deno.json\" ] || [ -f \"deno.jsonc\" ]; then\n  echo \"APP_DIR: $(pwd)\"\nelse\n  # Look for deno.json in immediate subdirectories\n  find . -maxdepth 2 -name \"deno.json\" -o -name \"deno.jsonc\" 2>\u002Fdev\u002Fnull | head -5\nfi\n```\n\nAll deploy commands must run from the app directory.\n\n### Step 2: Pre-Flight Checks\n\nCheck Deno version and existing configuration:\n\n```bash\n# Check Deno version (must be >= 2.4.2)\ndeno --version | head -1\n\n# Check for existing deploy config\ngrep -E '\"org\"|\"app\"' deno.json deno.jsonc 2>\u002Fdev\u002Fnull || echo \"NO_DEPLOY_CONFIG\"\n```\n\n### Step 3: Check for Startup Dependencies\n\nBefore deploying, check if the app connects to a database or external service at\nstartup (e.g., top-level `await initDb()` in `main.ts`). If it does, the deploy\nwill fail during warmup because the database doesn't exist yet.\n\n**If the app has startup database dependencies, follow this order:**\n\n1. **Create the app with `--no-wait`** so a warmup failure doesn't block you:\n   ```bash\n   deno deploy create \\\n     --org \u003CORG_NAME> --app \u003CAPP_NAME> \\\n     --source local --runtime-mode dynamic --entrypoint main.ts \\\n     --build-timeout 5 --build-memory-limit 1024 --region us \\\n     --no-wait\n   ```\n\n2. **Provision and assign the database:**\n   ```bash\n   deno deploy database provision my-db --kind prisma --region us-east-1\n   deno deploy database assign my-db --app \u003CAPP_NAME>\n   ```\n\n3. **Redeploy** (now the database exists, warmup will succeed):\n   ```bash\n   deno deploy --prod\n   ```\n\nIf the app has no startup dependencies, skip this step and deploy normally\nbelow.\n\n### Step 4: Deploy Based on Configuration\n\n**If `deploy.org` AND `deploy.app` exist in deno.json:**\n\n```bash\n# Build if needed (Fresh, Astro, etc.)\ndeno task build\n\n# Deploy to production\ndeno deploy --prod\n```\n\n**If NO deploy config exists:**\n\n**Apps must be created before they can be deployed to.** You cannot run\n`deno deploy --prod` until an app exists.\n\n**IMPORTANT: Ask the user first** - Do they have an existing app on Deno Deploy,\nor do they need to create a new one?\n\n**If they have an existing app**, add the config directly to deno.json:\n\n```json\n{\n  \"deploy\": {\n    \"org\": \"\u003CORG_NAME>\",\n    \"app\": \"\u003CAPP_NAME>\"\n  }\n}\n```\n\nThe org name is in the Deno Deploy console URL (e.g.,\n`console.deno.com\u002Fyour-org-name`). Once this config is in place, subsequent\ndeploys just need `deno deploy --prod`.\n\n**If they need to create a new app:**\n\nThe CLI needs an organization name. Find it at https:\u002F\u002Fconsole.deno.com - the\norg is in the URL path (e.g., `console.deno.com\u002Fyour-org-name`).\n\n**Interactive creation** (opens a browser — only works when a human is at the\nkeyboard):\n\n```bash\ndeno deploy create --org \u003CORG_NAME>\n# A browser window opens - complete the app creation there\n```\n\n**Non-interactive creation** (use when an AI agent is performing the deploy, or\nin CI\u002FCD):\n\n```bash\ndeno deploy create \\\n  --org \u003CORG_NAME> \\\n  --app \u003CAPP_NAME> \\\n  --source local \\\n  --runtime-mode dynamic \\\n  --entrypoint main.ts \\\n  --build-timeout 5 \\\n  --build-memory-limit 1024 \\\n  --region us\n```\n\nThe create command also does the initial deploy. After it completes, `deno.json`\nis updated with `deploy.org` and `deploy.app` automatically. From that point on,\nsubsequent deploys only need:\n\n```bash\ndeno deploy --prod\n```\n\nAfter completion, verify the config was saved:\n\n```bash\ngrep -E '\"org\"|\"app\"' deno.json\n```\n\n**When an AI agent is performing the deployment**, always use the\nnon-interactive flow with explicit flags. The interactive flow requires browser\nwindows and terminal prompts that agents cannot navigate.\n\n## Core Commands\n\n### Production Deployment\n\n```bash\ndeno deploy --prod\n```\n\n### Preview Deployment\n\n```bash\ndeno deploy\n```\n\nPreview deployments create a unique URL for testing without affecting\nproduction.\n\n### Targeting Specific Apps\n\n```bash\ndeno deploy --org my-org --app my-app --prod\n```\n\n### Configuring an Entrypoint\n\nSet the entrypoint in your `deno.json` (this is used by `deno deploy create`\nduring app creation):\n\n```json\n{\n  \"deploy\": {\n    \"entrypoint\": \"main.ts\"\n  }\n}\n```\n\nNote: `--entrypoint` is a flag on `deno deploy create`, not on `deno deploy`\nitself.\n\n### Additional Flags\n\nThese flags are available on `deno deploy create` (and apply during the initial\ndeploy):\n\n| Flag                   | Purpose                                  |\n| ---------------------- | ---------------------------------------- |\n| `--allow-node-modules` | Include node_modules directory in upload |\n| `--no-wait`            | Skip waiting for the build to complete   |\n\n## Creating Apps (Non-Interactive Reference)\n\nWhen any flag beyond `--org` is provided, `deno deploy create` runs in\nnon-interactive mode — all required flags must be specified. This is the\nrecommended approach for AI agents and CI\u002FCD pipelines.\n\n### Required Flags\n\n| Flag                        | Description                                           |\n| --------------------------- | ----------------------------------------------------- |\n| `--org \u003Cname>`              | Organization name                                     |\n| `--app \u003Cname>`              | Application name (becomes your URL: `\u003Capp>.deno.dev`) |\n| `--source \u003Clocal\\|github>`  | Deploy from local files or a GitHub repo              |\n| `--build-timeout \u003Cminutes>` | Build timeout: 5, 10, 15, 20, 25, or 30               |\n| `--build-memory-limit \u003CMB>` | Memory limit: 1024, 2048, 3072, or 4096               |\n| `--region \u003Cregion>`         | Deployment region: us, eu, or global                  |\n\n### GitHub Source Flags\n\nWhen using `--source github`, you also need:\n\n| Flag             | Description             |\n| ---------------- | ----------------------- |\n| `--owner \u003Cname>` | GitHub repository owner |\n| `--repo \u003Cname>`  | GitHub repository name  |\n\n### Build Configuration Flags\n\n| Flag                                 | Description                                                   |\n| ------------------------------------ | ------------------------------------------------------------- |\n| `--app-directory \u003Cpath>`             | Path to app directory (for monorepos)                         |\n| `--framework-preset \u003Cpreset>`        | Framework preset (see [Frameworks](references\u002FFRAMEWORKS.md)) |\n| `--install-command \u003Ccmd>`            | Custom install command                                        |\n| `--build-command \u003Ccmd>`              | Custom build command                                          |\n| `--pre-deploy-command \u003Ccmd>`         | Command to run before deploy                                  |\n| `--do-not-use-detected-build-config` | Skip auto-detection of framework config                       |\n\nThe CLI auto-detects your framework and build configuration. If a framework is\ndetected, you can skip `--install-command`, `--build-command`,\n`--pre-deploy-command`, and `--runtime-mode` — they'll be inferred from the\npreset. Use `--do-not-use-detected-build-config` to override detection. **When\nusing this flag, all three build commands (`--install-command`,\n`--build-command`, `--pre-deploy-command`) plus `--runtime-mode` become\nrequired** — omitting any of them causes exit code 2.\n\n### Runtime Mode Flags\n\nYou must pick a runtime mode with `--runtime-mode \u003Cdynamic|static>` (unless a\nframework preset handles it).\n\n**Dynamic mode** (for apps with a server):\n\n| Flag                        | Description                                 |\n| --------------------------- | ------------------------------------------- |\n| `--entrypoint \u003Cpath>`       | Entry file (required for dynamic mode)      |\n| `--arguments \u003Cargs>`        | Arguments passed to entrypoint (repeatable) |\n| `--working-directory \u003Ccwd>` | Working directory for the process           |\n\n**Static mode** (for static sites):\n\n| Flag                 | Description                                         |\n| -------------------- | --------------------------------------------------- |\n| `--static-dir \u003Cdir>` | Directory to serve static files from (required)     |\n| `--single-page-app`  | Serve index.html for routes that don't match a file |\n\n### Other Flags\n\n| Flag                   | Description                                           |\n| ---------------------- | ----------------------------------------------------- |\n| `--dry-run`            | Validate everything without actually creating the app |\n| `--no-wait`            | Don't wait for the build to complete                  |\n| `--allow-node-modules` | Include node_modules in the upload                    |\n\n### Examples\n\n**Simple Deno server:**\n\n```bash\ndeno deploy create \\\n  --org my-org --app my-api \\\n  --source local \\\n  --runtime-mode dynamic --entrypoint main.ts \\\n  --build-timeout 5 --build-memory-limit 1024 --region us\n```\n\n**Fresh app (framework auto-detected):**\n\n```bash\ndeno deploy create \\\n  --org my-org --app my-fresh-app \\\n  --source local \\\n  --build-timeout 5 --build-memory-limit 1024 --region us\n```\n\n**Next.js from GitHub:**\n\n```bash\ndeno deploy create \\\n  --org my-org --app my-next-app \\\n  --source github --owner my-github-user --repo my-next-repo \\\n  --framework-preset Next \\\n  --build-timeout 15 --build-memory-limit 2048 --region us \\\n  --allow-node-modules\n```\n\n**Static site:**\n\n```bash\ndeno deploy create \\\n  --org my-org --app my-static-site \\\n  --source local \\\n  --runtime-mode static --static-dir dist --single-page-app \\\n  --build-command \"deno task build\" \\\n  --build-timeout 5 --build-memory-limit 1024 --region us\n```\n\n## Environment Variables\n\n### Contexts\n\nDeno Deploy has three \"contexts\" - logical environments where your code runs,\neach with its own set of variables:\n\n| Context         | Purpose                                 |\n| --------------- | --------------------------------------- |\n| **Production**  | Live traffic on your production URL     |\n| **Development** | Preview deployments and branch URLs     |\n| **Build**       | Only available during the build process |\n\nYou can set different values for the same variable in each context. For example,\nyou might use a test database URL in Development and the real one in Production.\n\n### Predefined Variables\n\nThese are automatically available in your code:\n\n| Variable             | Description                            |\n| -------------------- | -------------------------------------- |\n| `DENO_DEPLOY`        | Always `1` when running on Deno Deploy |\n| `DENO_DEPLOYMENT_ID` | Unique ID for the current deployment   |\n| `DENO_DEPLOY_ORG_ID` | Your organization's ID                 |\n| `DENO_DEPLOY_APP_ID` | Your application's ID                  |\n| `CI`                 | Set to `1` during builds only          |\n\n### Accessing Variables in Code\n\n```typescript\nconst dbUrl = Deno.env.get(\"DATABASE_URL\");\nconst isDenoDeploy = Deno.env.get(\"DENO_DEPLOY\") === \"1\";\n```\n\n### Managing Variables via CLI\n\n```bash\n# Add a plain text variable\ndeno deploy env add DATABASE_URL \"postgres:\u002F\u002F...\"\n\n# Add a secret variable (hidden after creation, only readable in code)\ndeno deploy env add API_KEY \"sk-...\" --secret\n\n# List all variables\ndeno deploy env list\n\n# Update just the value (keeps contexts and secret status)\ndeno deploy env update-value DATABASE_URL \"postgres:\u002F\u002Fnew-url...\"\n\n# Update which contexts a variable applies to\ndeno deploy env update-contexts DATABASE_URL production development\n\n# Delete a variable\ndeno deploy env delete DATABASE_URL\n\n# Load from .env file (all values treated as secrets by default)\ndeno deploy env load .env.production\n\n# Load from .env file, marking specific keys as non-secrets\ndeno deploy env load .env.production --non-secrets PUBLIC_URL APP_NAME\n```\n\n### Variable Types\n\n- **Plain text** - Visible in the dashboard, good for feature flags and\n  non-sensitive config\n- **Secrets** - Hidden after creation, only readable in your code, use for API\n  keys and credentials\n\n### Limits\n\n- Key names: max 128 bytes\n- Values: max 16 KB\n- Keys cannot start with `DENO_`, `LD_`, or `OTEL_`\n\n## Viewing Logs\n\n```bash\n# Stream live logs\ndeno deploy logs\n\n# Filter by date range\ndeno deploy logs --start 2026-01-15 --end 2026-01-16\n```\n\n## Databases & Storage\n\nDeno Deploy provides built-in database support with **automatic environment\nisolation**. Each environment (production, preview, branch) gets its own\nisolated database automatically.\n\n### Available Options\n\n| Engine         | Use Case                                                 |\n| -------------- | -------------------------------------------------------- |\n| **Deno KV**    | Key-value storage, simple data, counters, sessions       |\n| **PostgreSQL** | Relational data, complex queries, existing Postgres apps |\n\n### Deno KV Quick Start\n\nNo configuration needed - just use the built-in API:\n\n```typescript\nconst kv = await Deno.openKv();\n\n\u002F\u002F Store data\nawait kv.set([\"users\", \"alice\"], { name: \"Alice\", role: \"admin\" });\n\n\u002F\u002F Retrieve data\nconst user = await kv.get([\"users\", \"alice\"]);\nconsole.log(user.value); \u002F\u002F { name: \"Alice\", role: \"admin\" }\n\n\u002F\u002F List by prefix\nfor await (const entry of kv.list({ prefix: [\"users\"] })) {\n  console.log(entry.key, entry.value);\n}\n```\n\nDeno Deploy automatically connects to the correct database based on your\nenvironment.\n\n### PostgreSQL\n\nFor PostgreSQL, Deno Deploy injects environment variables (`DATABASE_URL`,\n`PGHOST`, etc.) that most libraries detect automatically:\n\n```typescript\n\u002F\u002F Recommended: npm:pg (best PostgreSQL driver for Deno Deploy)\nimport pg from \"npm:pg\";\nconst pool = new pg.Pool(); \u002F\u002F Reads DATABASE_URL from environment automatically\n```\n\n### Provisioning\n\nUse the `deno deploy database` command to provision and manage databases:\n\n```bash\n# Provision a Deno KV database\ndeno deploy database provision my-database --kind denokv\n\n# Provision a Prisma PostgreSQL database\ndeno deploy database provision my-database --kind prisma --region us-east-1\n\n# Assign to your app\ndeno deploy database assign my-database --app my-app\n```\n\nFor detailed CLI commands, see [Databases](references\u002FDATABASES.md).\n\n### Local Development\n\nUse `--tunnel` to connect to your hosted development database locally:\n\n```bash\ndeno task --tunnel dev\n```\n\nSee [Databases](references\u002FDATABASES.md) and [Deno KV](references\u002FDENO_KV.md)\nfor detailed documentation.\n\n## Local Development Tunnel\n\nThe tunnel feature lets you expose your local development server to the\ninternet. This is useful for:\n\n- **Testing webhooks** - Receive webhook callbacks from external services\n- **Sharing with teammates** - Let others preview your local work\n- **Mobile testing** - Access your local server from other devices\n\n### Basic Usage\n\nAdd the `--tunnel` flag when running your app:\n\n```bash\ndeno run --tunnel -A main.ts\n```\n\nThe first time you run this, it will:\n\n1. Ask you to authenticate with Deno Deploy (opens a browser)\n2. Ask you to select which app to connect the tunnel to\n3. Generate a public URL that forwards requests to your local server\n\n### Using with Tasks\n\nYou can use `--tunnel` with your existing tasks in `deno.json`:\n\n```bash\ndeno task --tunnel dev\n```\n\nThis runs your `dev` task with the tunnel enabled.\n\n### What the Tunnel Provides\n\nBeyond just forwarding requests, the tunnel also:\n\n- **Syncs environment variables** - Variables set in your Deno Deploy app's\n  \"Local\" context become available to your local process\n- **Sends logs and metrics** - OpenTelemetry data goes to the Deno Deploy\n  dashboard (filter with `context:local`)\n- **Connects to databases** - Automatically connects to your assigned local\n  development databases\n\n### Managing Tunnels\n\n- View active tunnels in the Deno Deploy dashboard under the \"Tunnels\" tab\n- Stop a tunnel by terminating the Deno process (Ctrl+C)\n\n## Command Reference\n\n| Command                                               | Purpose                                                |\n| ----------------------------------------------------- | ------------------------------------------------------ |\n| `deno deploy --prod`                                  | Deploy to production (app must exist first)            |\n| `deno deploy`                                         | Preview deployment                                     |\n| `deno deploy create --org \u003Cname>`                     | Create new app (interactive)                           |\n| `deno deploy create --org \u003Cname> --app \u003Cname> ...`    | Create new app (non-interactive, see full flags above) |\n| `deno deploy create ... --no-wait`                    | Create app without waiting for build to complete       |\n| `deno deploy create ... --allow-node-modules`         | Create app including node_modules                      |\n| `deno deploy env add \u003Cvar> \u003Cvalue>`                   | Add plain text environment variable                    |\n| `deno deploy env add \u003Cvar> \u003Cvalue> --secret`          | Add secret environment variable                        |\n| `deno deploy env list`                                | List environment variables                             |\n| `deno deploy env update-value \u003Cvar> \u003Cvalue>`          | Update variable value (keeps contexts\u002Fsecret status)   |\n| `deno deploy env update-contexts \u003Cvar> \u003Ccontexts...>` | Update which contexts a variable applies to            |\n| `deno deploy env delete \u003Cvar>`                        | Delete environment variable                            |\n| `deno deploy env load \u003Cfile>`                         | Load variables from .env file (defaults to secret)     |\n| `deno deploy env load \u003Cfile> --non-secrets \u003Ckeys...>` | Load .env file, marking specific keys as non-secrets   |\n| `deno deploy database provision \u003Cname> --kind \u003Ctype>` | Provision a new database                               |\n| `deno deploy database assign \u003Cname> --app \u003Capp>`      | Assign database to an app                              |\n| `deno deploy logs`                                    | View deployment logs                                   |\n| `deno run --tunnel -A \u003Cfile>`                         | Start local tunnel                                     |\n| `deno task --tunnel \u003Ctask>`                           | Run task with tunnel                                   |\n\n## Edge Runtime Notes\n\nDeno Deploy runs in one or many regions (globally distributed). Keep in mind:\n\n- **Environment variables** - Must be set via `deno deploy env`, not .env files\n  at runtime\n- **Global distribution** - Code runs at the region closest to users\n- **Cold starts** - First request after idle may be slightly slower\n\n## Additional References\n\n- [Authentication](references\u002FAUTHENTICATION.md) - Interactive and CI\u002FCD\n  authentication\n- [Databases](references\u002FDATABASES.md) - Database provisioning and connections\n- [Deno KV](references\u002FDENO_KV.md) - Key-value storage API and examples\n- [Domains](references\u002FDOMAINS.md) - Custom domains and SSL certificates\n- [Frameworks](references\u002FFRAMEWORKS.md) - Framework-specific deployment guides\n- [Organizations](references\u002FORGANIZATIONS.md) - Managing orgs and members\n- [Runtime](references\u002FRUNTIME.md) - Lifecycle, cold starts, and limitations\n- [Troubleshooting](references\u002FTROUBLESHOOTING.md) - Common issues and solutions\n\n## Documentation\n\n- Official docs: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002F\n- CLI reference: https:\u002F\u002Fdocs.deno.com\u002Fruntime\u002Freference\u002Fcli\u002Fdeploy\u002F\n- Databases: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fdatabases\u002F\n- Deno KV: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fdeno_kv\u002F\n- Domains: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fdomains\u002F\n- Environment variables & contexts:\n  https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fenv_vars_and_contexts\u002F\n- Organizations: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Forganizations\u002F\n- Runtime: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fruntime\u002F\n- Tunnel: https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Ftunnel\u002F\n",{"data":33,"body":36},{"name":4,"description":6,"license":24,"metadata":34},{"author":11,"version":35},"1.5",{"type":37,"children":38},"root",[39,47,53,60,73,128,147,171,211,217,242,367,372,378,396,403,408,643,648,654,659,783,789,810,818,1139,1144,1150,1174,1236,1244,1261,1271,1281,1414,1433,1441,1463,1473,1524,1534,1707,1733,1754,1759,1794,1804,1810,1816,1837,1843,1862,1867,1873,1913,1919,1939,2022,2049,2055,2067,2128,2134,2154,2160,2291,2297,2310,2364,2370,2499,2575,2581,2594,2604,2675,2685,2739,2745,2814,2820,2828,2943,2951,3043,3051,3195,3203,3351,3357,3363,3368,3437,3442,3448,3453,3574,3580,3735,3741,4135,4141,4164,4170,4209,4215,4297,4303,4315,4321,4375,4381,4386,4893,4898,4903,4922,5020,5026,5039,5188,5200,5206,5218,5246,5263,5269,5274,5307,5313,5325,5358,5363,5381,5387,5405,5430,5443,5449,5454,5494,5500,5513,5519,5861,5867,5872,5913,5919,6004,6010,6112],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Deno Deploy",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"This skill provides guidance for deploying applications to Deno Deploy.",{"type":40,"tag":54,"props":55,"children":57},"h2",{"id":56},"scope-boundaries",[58],{"type":45,"value":59},"Scope Boundaries",{"type":40,"tag":48,"props":61,"children":62},{},[63,65,71],{"type":45,"value":64},"This skill applies ",{"type":40,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":45,"value":70},"only",{"type":45,"value":72}," to Deno Deploy questions. Follow these rules:",{"type":40,"tag":74,"props":75,"children":76},"ul",{},[77,90,110,123],{"type":40,"tag":78,"props":79,"children":80},"li",{},[81,83,88],{"type":45,"value":82},"If the user asks about ",{"type":40,"tag":66,"props":84,"children":85},{},[86],{"type":45,"value":87},"AWS Lambda, Vercel, Netlify, Google Cloud Run,\nDocker, Kubernetes, or any other deployment platform",{"type":45,"value":89},", answer using that\nplatform directly. Do not mention Deno Deploy at all — not as an alternative,\nnot as a comparison, not as a suggestion.",{"type":40,"tag":78,"props":91,"children":92},{},[93,94,99,101,108],{"type":45,"value":82},{"type":40,"tag":66,"props":95,"children":96},{},[97],{"type":45,"value":98},"running a local Deno script",{"type":45,"value":100}," (not deploying), answer\nthe local question directly. Do not mention Deno Deploy, deployment, or the\n",{"type":40,"tag":102,"props":103,"children":105},"code",{"className":104},[],[106],{"type":45,"value":107},"--tunnel",{"type":45,"value":109}," flag.",{"type":40,"tag":78,"props":111,"children":112},{},[113,115,121],{"type":45,"value":114},"Do not include ",{"type":40,"tag":102,"props":116,"children":118},{"className":117},[],[119],{"type":45,"value":120},"deno deploy",{"type":45,"value":122}," commands, Deno KV, or Deno Deploy environment\nvariable configuration in responses about other platforms or local-only\nscripts.",{"type":40,"tag":78,"props":124,"children":125},{},[126],{"type":45,"value":127},"Only discuss Deno Deploy when the user explicitly asks about Deno Deploy or\ndeploying a Deno application to production.",{"type":40,"tag":54,"props":129,"children":131},{"id":130},"important-use-deno-deploy-not-deployctl",[132,134,139,141],{"type":45,"value":133},"Important: Use ",{"type":40,"tag":102,"props":135,"children":137},{"className":136},[],[138],{"type":45,"value":120},{"type":45,"value":140},", NOT ",{"type":40,"tag":102,"props":142,"children":144},{"className":143},[],[145],{"type":45,"value":146},"deployctl",{"type":40,"tag":48,"props":148,"children":149},{},[150,162,164,169],{"type":40,"tag":66,"props":151,"children":152},{},[153,155,160],{"type":45,"value":154},"Always use the ",{"type":40,"tag":102,"props":156,"children":158},{"className":157},[],[159],{"type":45,"value":120},{"type":45,"value":161}," command.",{"type":45,"value":163}," Do NOT use ",{"type":40,"tag":102,"props":165,"children":167},{"className":166},[],[168],{"type":45,"value":146},{"type":45,"value":170},".",{"type":40,"tag":74,"props":172,"children":173},{},[174,184,194],{"type":40,"tag":78,"props":175,"children":176},{},[177,182],{"type":40,"tag":102,"props":178,"children":180},{"className":179},[],[181],{"type":45,"value":146},{"type":45,"value":183}," is for Deno Deploy Classic (deprecated)",{"type":40,"tag":78,"props":185,"children":186},{},[187,192],{"type":40,"tag":102,"props":188,"children":190},{"className":189},[],[191],{"type":45,"value":120},{"type":45,"value":193}," is the modern, integrated command built into the Deno CLI",{"type":40,"tag":78,"props":195,"children":196},{},[197,202,204,209],{"type":40,"tag":66,"props":198,"children":199},{},[200],{"type":45,"value":201},"Requires Deno >= 2.4.2",{"type":45,"value":203}," - the ",{"type":40,"tag":102,"props":205,"children":207},{"className":206},[],[208],{"type":45,"value":120},{"type":45,"value":210}," subcommand was introduced in\nDeno 2.4",{"type":40,"tag":54,"props":212,"children":214},{"id":213},"when-unsure-about-cli-flags",[215],{"type":45,"value":216},"When Unsure About CLI Flags",{"type":40,"tag":48,"props":218,"children":219},{},[220,233,235,240],{"type":40,"tag":66,"props":221,"children":222},{},[223,225,231],{"type":45,"value":224},"Always run ",{"type":40,"tag":102,"props":226,"children":228},{"className":227},[],[229],{"type":45,"value":230},"--help",{"type":45,"value":232}," before guessing at flags.",{"type":45,"value":234}," The ",{"type":40,"tag":102,"props":236,"children":238},{"className":237},[],[239],{"type":45,"value":120},{"type":45,"value":241}," subcommand\nhas many flags, and they change between versions. When you're unsure what a\ncommand accepts:",{"type":40,"tag":243,"props":244,"children":249},"pre",{"className":245,"code":246,"language":247,"meta":248,"style":248},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# See all subcommands\ndeno deploy --help\n\n# See flags for a specific subcommand\ndeno deploy create --help\ndeno deploy env --help\ndeno deploy database --help\n","bash","",[250],{"type":40,"tag":102,"props":251,"children":252},{"__ignoreMap":248},[253,265,285,295,304,325,346],{"type":40,"tag":254,"props":255,"children":258},"span",{"class":256,"line":257},"line",1,[259],{"type":40,"tag":254,"props":260,"children":262},{"style":261},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[263],{"type":45,"value":264},"# See all subcommands\n",{"type":40,"tag":254,"props":266,"children":268},{"class":256,"line":267},2,[269,274,280],{"type":40,"tag":254,"props":270,"children":272},{"style":271},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[273],{"type":45,"value":8},{"type":40,"tag":254,"props":275,"children":277},{"style":276},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[278],{"type":45,"value":279}," deploy",{"type":40,"tag":254,"props":281,"children":282},{"style":276},[283],{"type":45,"value":284}," --help\n",{"type":40,"tag":254,"props":286,"children":288},{"class":256,"line":287},3,[289],{"type":40,"tag":254,"props":290,"children":292},{"emptyLinePlaceholder":291},true,[293],{"type":45,"value":294},"\n",{"type":40,"tag":254,"props":296,"children":298},{"class":256,"line":297},4,[299],{"type":40,"tag":254,"props":300,"children":301},{"style":261},[302],{"type":45,"value":303},"# See flags for a specific subcommand\n",{"type":40,"tag":254,"props":305,"children":307},{"class":256,"line":306},5,[308,312,316,321],{"type":40,"tag":254,"props":309,"children":310},{"style":271},[311],{"type":45,"value":8},{"type":40,"tag":254,"props":313,"children":314},{"style":276},[315],{"type":45,"value":279},{"type":40,"tag":254,"props":317,"children":318},{"style":276},[319],{"type":45,"value":320}," create",{"type":40,"tag":254,"props":322,"children":323},{"style":276},[324],{"type":45,"value":284},{"type":40,"tag":254,"props":326,"children":328},{"class":256,"line":327},6,[329,333,337,342],{"type":40,"tag":254,"props":330,"children":331},{"style":271},[332],{"type":45,"value":8},{"type":40,"tag":254,"props":334,"children":335},{"style":276},[336],{"type":45,"value":279},{"type":40,"tag":254,"props":338,"children":339},{"style":276},[340],{"type":45,"value":341}," env",{"type":40,"tag":254,"props":343,"children":344},{"style":276},[345],{"type":45,"value":284},{"type":40,"tag":254,"props":347,"children":349},{"class":256,"line":348},7,[350,354,358,363],{"type":40,"tag":254,"props":351,"children":352},{"style":271},[353],{"type":45,"value":8},{"type":40,"tag":254,"props":355,"children":356},{"style":276},[357],{"type":45,"value":279},{"type":40,"tag":254,"props":359,"children":360},{"style":276},[361],{"type":45,"value":362}," database",{"type":40,"tag":254,"props":364,"children":365},{"style":276},[366],{"type":45,"value":284},{"type":40,"tag":48,"props":368,"children":369},{},[370],{"type":45,"value":371},"This takes seconds and prevents repeated trial-and-error failures. Never assume\na flag exists — check first.",{"type":40,"tag":54,"props":373,"children":375},{"id":374},"deployment-workflow",[376],{"type":45,"value":377},"Deployment Workflow",{"type":40,"tag":48,"props":379,"children":380},{},[381,386,388,394],{"type":40,"tag":66,"props":382,"children":383},{},[384],{"type":45,"value":385},"Always show the core deploy command first",{"type":45,"value":387}," — then explain diagnostic steps.\nWhen a user asks \"how do I deploy?\", lead with the actual command\n(",{"type":40,"tag":102,"props":389,"children":391},{"className":390},[],[392],{"type":45,"value":393},"deno deploy --prod",{"type":45,"value":395},") before covering pre-flight checks and configuration.",{"type":40,"tag":397,"props":398,"children":400},"h3",{"id":399},"step-1-locate-the-app-directory",[401],{"type":45,"value":402},"Step 1: Locate the App Directory",{"type":40,"tag":48,"props":404,"children":405},{},[406],{"type":45,"value":407},"Before running any deploy commands, find where the Deno app is located:",{"type":40,"tag":243,"props":409,"children":411},{"className":245,"code":410,"language":247,"meta":248,"style":248},"# Check if deno.json exists in current directory\nif [ -f \"deno.json\" ] || [ -f \"deno.jsonc\" ]; then\n  echo \"APP_DIR: $(pwd)\"\nelse\n  # Look for deno.json in immediate subdirectories\n  find . -maxdepth 2 -name \"deno.json\" -o -name \"deno.jsonc\" 2>\u002Fdev\u002Fnull | head -5\nfi\n",[412],{"type":40,"tag":102,"props":413,"children":414},{"__ignoreMap":248},[415,423,499,532,540,548,635],{"type":40,"tag":254,"props":416,"children":417},{"class":256,"line":257},[418],{"type":40,"tag":254,"props":419,"children":420},{"style":261},[421],{"type":45,"value":422},"# Check if deno.json exists in current directory\n",{"type":40,"tag":254,"props":424,"children":425},{"class":256,"line":267},[426,432,438,443,448,453,458,463,468,472,476,480,485,489,494],{"type":40,"tag":254,"props":427,"children":429},{"style":428},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[430],{"type":45,"value":431},"if",{"type":40,"tag":254,"props":433,"children":435},{"style":434},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[436],{"type":45,"value":437}," [",{"type":40,"tag":254,"props":439,"children":440},{"style":434},[441],{"type":45,"value":442}," -f",{"type":40,"tag":254,"props":444,"children":445},{"style":434},[446],{"type":45,"value":447}," \"",{"type":40,"tag":254,"props":449,"children":450},{"style":276},[451],{"type":45,"value":452},"deno.json",{"type":40,"tag":254,"props":454,"children":455},{"style":434},[456],{"type":45,"value":457},"\"",{"type":40,"tag":254,"props":459,"children":460},{"style":434},[461],{"type":45,"value":462}," ]",{"type":40,"tag":254,"props":464,"children":465},{"style":434},[466],{"type":45,"value":467}," ||",{"type":40,"tag":254,"props":469,"children":470},{"style":434},[471],{"type":45,"value":437},{"type":40,"tag":254,"props":473,"children":474},{"style":434},[475],{"type":45,"value":442},{"type":40,"tag":254,"props":477,"children":478},{"style":434},[479],{"type":45,"value":447},{"type":40,"tag":254,"props":481,"children":482},{"style":276},[483],{"type":45,"value":484},"deno.jsonc",{"type":40,"tag":254,"props":486,"children":487},{"style":434},[488],{"type":45,"value":457},{"type":40,"tag":254,"props":490,"children":491},{"style":434},[492],{"type":45,"value":493}," ];",{"type":40,"tag":254,"props":495,"children":496},{"style":428},[497],{"type":45,"value":498}," then\n",{"type":40,"tag":254,"props":500,"children":501},{"class":256,"line":287},[502,508,512,517,522,527],{"type":40,"tag":254,"props":503,"children":505},{"style":504},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[506],{"type":45,"value":507},"  echo",{"type":40,"tag":254,"props":509,"children":510},{"style":434},[511],{"type":45,"value":447},{"type":40,"tag":254,"props":513,"children":514},{"style":276},[515],{"type":45,"value":516},"APP_DIR: ",{"type":40,"tag":254,"props":518,"children":519},{"style":434},[520],{"type":45,"value":521},"$(",{"type":40,"tag":254,"props":523,"children":524},{"style":504},[525],{"type":45,"value":526},"pwd",{"type":40,"tag":254,"props":528,"children":529},{"style":434},[530],{"type":45,"value":531},")\"\n",{"type":40,"tag":254,"props":533,"children":534},{"class":256,"line":297},[535],{"type":40,"tag":254,"props":536,"children":537},{"style":428},[538],{"type":45,"value":539},"else\n",{"type":40,"tag":254,"props":541,"children":542},{"class":256,"line":306},[543],{"type":40,"tag":254,"props":544,"children":545},{"style":261},[546],{"type":45,"value":547},"  # Look for deno.json in immediate subdirectories\n",{"type":40,"tag":254,"props":549,"children":550},{"class":256,"line":327},[551,556,561,566,572,577,581,585,589,594,598,602,606,610,615,620,625,630],{"type":40,"tag":254,"props":552,"children":553},{"style":271},[554],{"type":45,"value":555},"  find",{"type":40,"tag":254,"props":557,"children":558},{"style":276},[559],{"type":45,"value":560}," .",{"type":40,"tag":254,"props":562,"children":563},{"style":276},[564],{"type":45,"value":565}," -maxdepth",{"type":40,"tag":254,"props":567,"children":569},{"style":568},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[570],{"type":45,"value":571}," 2",{"type":40,"tag":254,"props":573,"children":574},{"style":276},[575],{"type":45,"value":576}," -name",{"type":40,"tag":254,"props":578,"children":579},{"style":434},[580],{"type":45,"value":447},{"type":40,"tag":254,"props":582,"children":583},{"style":276},[584],{"type":45,"value":452},{"type":40,"tag":254,"props":586,"children":587},{"style":434},[588],{"type":45,"value":457},{"type":40,"tag":254,"props":590,"children":591},{"style":276},[592],{"type":45,"value":593}," -o",{"type":40,"tag":254,"props":595,"children":596},{"style":276},[597],{"type":45,"value":576},{"type":40,"tag":254,"props":599,"children":600},{"style":434},[601],{"type":45,"value":447},{"type":40,"tag":254,"props":603,"children":604},{"style":276},[605],{"type":45,"value":484},{"type":40,"tag":254,"props":607,"children":608},{"style":434},[609],{"type":45,"value":457},{"type":40,"tag":254,"props":611,"children":612},{"style":434},[613],{"type":45,"value":614}," 2>",{"type":40,"tag":254,"props":616,"children":617},{"style":276},[618],{"type":45,"value":619},"\u002Fdev\u002Fnull",{"type":40,"tag":254,"props":621,"children":622},{"style":434},[623],{"type":45,"value":624}," |",{"type":40,"tag":254,"props":626,"children":627},{"style":271},[628],{"type":45,"value":629}," head",{"type":40,"tag":254,"props":631,"children":632},{"style":276},[633],{"type":45,"value":634}," -5\n",{"type":40,"tag":254,"props":636,"children":637},{"class":256,"line":348},[638],{"type":40,"tag":254,"props":639,"children":640},{"style":428},[641],{"type":45,"value":642},"fi\n",{"type":40,"tag":48,"props":644,"children":645},{},[646],{"type":45,"value":647},"All deploy commands must run from the app directory.",{"type":40,"tag":397,"props":649,"children":651},{"id":650},"step-2-pre-flight-checks",[652],{"type":45,"value":653},"Step 2: Pre-Flight Checks",{"type":40,"tag":48,"props":655,"children":656},{},[657],{"type":45,"value":658},"Check Deno version and existing configuration:",{"type":40,"tag":243,"props":660,"children":662},{"className":245,"code":661,"language":247,"meta":248,"style":248},"# Check Deno version (must be >= 2.4.2)\ndeno --version | head -1\n\n# Check for existing deploy config\ngrep -E '\"org\"|\"app\"' deno.json deno.jsonc 2>\u002Fdev\u002Fnull || echo \"NO_DEPLOY_CONFIG\"\n",[663],{"type":40,"tag":102,"props":664,"children":665},{"__ignoreMap":248},[666,674,699,706,714],{"type":40,"tag":254,"props":667,"children":668},{"class":256,"line":257},[669],{"type":40,"tag":254,"props":670,"children":671},{"style":261},[672],{"type":45,"value":673},"# Check Deno version (must be >= 2.4.2)\n",{"type":40,"tag":254,"props":675,"children":676},{"class":256,"line":267},[677,681,686,690,694],{"type":40,"tag":254,"props":678,"children":679},{"style":271},[680],{"type":45,"value":8},{"type":40,"tag":254,"props":682,"children":683},{"style":276},[684],{"type":45,"value":685}," --version",{"type":40,"tag":254,"props":687,"children":688},{"style":434},[689],{"type":45,"value":624},{"type":40,"tag":254,"props":691,"children":692},{"style":271},[693],{"type":45,"value":629},{"type":40,"tag":254,"props":695,"children":696},{"style":276},[697],{"type":45,"value":698}," -1\n",{"type":40,"tag":254,"props":700,"children":701},{"class":256,"line":287},[702],{"type":40,"tag":254,"props":703,"children":704},{"emptyLinePlaceholder":291},[705],{"type":45,"value":294},{"type":40,"tag":254,"props":707,"children":708},{"class":256,"line":297},[709],{"type":40,"tag":254,"props":710,"children":711},{"style":261},[712],{"type":45,"value":713},"# Check for existing deploy config\n",{"type":40,"tag":254,"props":715,"children":716},{"class":256,"line":306},[717,722,727,732,737,742,747,752,756,760,764,769,773,778],{"type":40,"tag":254,"props":718,"children":719},{"style":271},[720],{"type":45,"value":721},"grep",{"type":40,"tag":254,"props":723,"children":724},{"style":276},[725],{"type":45,"value":726}," -E",{"type":40,"tag":254,"props":728,"children":729},{"style":434},[730],{"type":45,"value":731}," '",{"type":40,"tag":254,"props":733,"children":734},{"style":276},[735],{"type":45,"value":736},"\"org\"|\"app\"",{"type":40,"tag":254,"props":738,"children":739},{"style":434},[740],{"type":45,"value":741},"'",{"type":40,"tag":254,"props":743,"children":744},{"style":276},[745],{"type":45,"value":746}," deno.json",{"type":40,"tag":254,"props":748,"children":749},{"style":276},[750],{"type":45,"value":751}," deno.jsonc",{"type":40,"tag":254,"props":753,"children":754},{"style":434},[755],{"type":45,"value":614},{"type":40,"tag":254,"props":757,"children":758},{"style":276},[759],{"type":45,"value":619},{"type":40,"tag":254,"props":761,"children":762},{"style":434},[763],{"type":45,"value":467},{"type":40,"tag":254,"props":765,"children":766},{"style":504},[767],{"type":45,"value":768}," echo",{"type":40,"tag":254,"props":770,"children":771},{"style":434},[772],{"type":45,"value":447},{"type":40,"tag":254,"props":774,"children":775},{"style":276},[776],{"type":45,"value":777},"NO_DEPLOY_CONFIG",{"type":40,"tag":254,"props":779,"children":780},{"style":434},[781],{"type":45,"value":782},"\"\n",{"type":40,"tag":397,"props":784,"children":786},{"id":785},"step-3-check-for-startup-dependencies",[787],{"type":45,"value":788},"Step 3: Check for Startup Dependencies",{"type":40,"tag":48,"props":790,"children":791},{},[792,794,800,802,808],{"type":45,"value":793},"Before deploying, check if the app connects to a database or external service at\nstartup (e.g., top-level ",{"type":40,"tag":102,"props":795,"children":797},{"className":796},[],[798],{"type":45,"value":799},"await initDb()",{"type":45,"value":801}," in ",{"type":40,"tag":102,"props":803,"children":805},{"className":804},[],[806],{"type":45,"value":807},"main.ts",{"type":45,"value":809},"). If it does, the deploy\nwill fail during warmup because the database doesn't exist yet.",{"type":40,"tag":48,"props":811,"children":812},{},[813],{"type":40,"tag":66,"props":814,"children":815},{},[816],{"type":45,"value":817},"If the app has startup database dependencies, follow this order:",{"type":40,"tag":819,"props":820,"children":821},"ol",{},[822,1002,1106],{"type":40,"tag":78,"props":823,"children":824},{},[825,836,838],{"type":40,"tag":66,"props":826,"children":827},{},[828,830],{"type":45,"value":829},"Create the app with ",{"type":40,"tag":102,"props":831,"children":833},{"className":832},[],[834],{"type":45,"value":835},"--no-wait",{"type":45,"value":837}," so a warmup failure doesn't block you:",{"type":40,"tag":243,"props":839,"children":841},{"className":245,"code":840,"language":247,"meta":248,"style":248},"deno deploy create \\\n  --org \u003CORG_NAME> --app \u003CAPP_NAME> \\\n  --source local --runtime-mode dynamic --entrypoint main.ts \\\n  --build-timeout 5 --build-memory-limit 1024 --region us \\\n  --no-wait\n",[842],{"type":40,"tag":102,"props":843,"children":844},{"__ignoreMap":248},[845,866,920,957,994],{"type":40,"tag":254,"props":846,"children":847},{"class":256,"line":257},[848,852,856,860],{"type":40,"tag":254,"props":849,"children":850},{"style":271},[851],{"type":45,"value":8},{"type":40,"tag":254,"props":853,"children":854},{"style":276},[855],{"type":45,"value":279},{"type":40,"tag":254,"props":857,"children":858},{"style":276},[859],{"type":45,"value":320},{"type":40,"tag":254,"props":861,"children":863},{"style":862},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[864],{"type":45,"value":865}," \\\n",{"type":40,"tag":254,"props":867,"children":868},{"class":256,"line":267},[869,874,879,884,889,894,899,903,908,912,916],{"type":40,"tag":254,"props":870,"children":871},{"style":276},[872],{"type":45,"value":873},"  --org",{"type":40,"tag":254,"props":875,"children":876},{"style":434},[877],{"type":45,"value":878}," \u003C",{"type":40,"tag":254,"props":880,"children":881},{"style":276},[882],{"type":45,"value":883},"ORG_NAM",{"type":40,"tag":254,"props":885,"children":886},{"style":862},[887],{"type":45,"value":888},"E",{"type":40,"tag":254,"props":890,"children":891},{"style":434},[892],{"type":45,"value":893},">",{"type":40,"tag":254,"props":895,"children":896},{"style":276},[897],{"type":45,"value":898}," --app",{"type":40,"tag":254,"props":900,"children":901},{"style":434},[902],{"type":45,"value":878},{"type":40,"tag":254,"props":904,"children":905},{"style":276},[906],{"type":45,"value":907},"APP_NAM",{"type":40,"tag":254,"props":909,"children":910},{"style":862},[911],{"type":45,"value":888},{"type":40,"tag":254,"props":913,"children":914},{"style":434},[915],{"type":45,"value":893},{"type":40,"tag":254,"props":917,"children":918},{"style":862},[919],{"type":45,"value":865},{"type":40,"tag":254,"props":921,"children":922},{"class":256,"line":287},[923,928,933,938,943,948,953],{"type":40,"tag":254,"props":924,"children":925},{"style":276},[926],{"type":45,"value":927},"  --source",{"type":40,"tag":254,"props":929,"children":930},{"style":276},[931],{"type":45,"value":932}," local",{"type":40,"tag":254,"props":934,"children":935},{"style":276},[936],{"type":45,"value":937}," --runtime-mode",{"type":40,"tag":254,"props":939,"children":940},{"style":276},[941],{"type":45,"value":942}," dynamic",{"type":40,"tag":254,"props":944,"children":945},{"style":276},[946],{"type":45,"value":947}," --entrypoint",{"type":40,"tag":254,"props":949,"children":950},{"style":276},[951],{"type":45,"value":952}," main.ts",{"type":40,"tag":254,"props":954,"children":955},{"style":862},[956],{"type":45,"value":865},{"type":40,"tag":254,"props":958,"children":959},{"class":256,"line":297},[960,965,970,975,980,985,990],{"type":40,"tag":254,"props":961,"children":962},{"style":276},[963],{"type":45,"value":964},"  --build-timeout",{"type":40,"tag":254,"props":966,"children":967},{"style":568},[968],{"type":45,"value":969}," 5",{"type":40,"tag":254,"props":971,"children":972},{"style":276},[973],{"type":45,"value":974}," --build-memory-limit",{"type":40,"tag":254,"props":976,"children":977},{"style":568},[978],{"type":45,"value":979}," 1024",{"type":40,"tag":254,"props":981,"children":982},{"style":276},[983],{"type":45,"value":984}," --region",{"type":40,"tag":254,"props":986,"children":987},{"style":276},[988],{"type":45,"value":989}," us",{"type":40,"tag":254,"props":991,"children":992},{"style":862},[993],{"type":45,"value":865},{"type":40,"tag":254,"props":995,"children":996},{"class":256,"line":306},[997],{"type":40,"tag":254,"props":998,"children":999},{"style":276},[1000],{"type":45,"value":1001},"  --no-wait\n",{"type":40,"tag":78,"props":1003,"children":1004},{},[1005,1010],{"type":40,"tag":66,"props":1006,"children":1007},{},[1008],{"type":45,"value":1009},"Provision and assign the database:",{"type":40,"tag":243,"props":1011,"children":1013},{"className":245,"code":1012,"language":247,"meta":248,"style":248},"deno deploy database provision my-db --kind prisma --region us-east-1\ndeno deploy database assign my-db --app \u003CAPP_NAME>\n",[1014],{"type":40,"tag":102,"props":1015,"children":1016},{"__ignoreMap":248},[1017,1061],{"type":40,"tag":254,"props":1018,"children":1019},{"class":256,"line":257},[1020,1024,1028,1032,1037,1042,1047,1052,1056],{"type":40,"tag":254,"props":1021,"children":1022},{"style":271},[1023],{"type":45,"value":8},{"type":40,"tag":254,"props":1025,"children":1026},{"style":276},[1027],{"type":45,"value":279},{"type":40,"tag":254,"props":1029,"children":1030},{"style":276},[1031],{"type":45,"value":362},{"type":40,"tag":254,"props":1033,"children":1034},{"style":276},[1035],{"type":45,"value":1036}," provision",{"type":40,"tag":254,"props":1038,"children":1039},{"style":276},[1040],{"type":45,"value":1041}," my-db",{"type":40,"tag":254,"props":1043,"children":1044},{"style":276},[1045],{"type":45,"value":1046}," --kind",{"type":40,"tag":254,"props":1048,"children":1049},{"style":276},[1050],{"type":45,"value":1051}," prisma",{"type":40,"tag":254,"props":1053,"children":1054},{"style":276},[1055],{"type":45,"value":984},{"type":40,"tag":254,"props":1057,"children":1058},{"style":276},[1059],{"type":45,"value":1060}," us-east-1\n",{"type":40,"tag":254,"props":1062,"children":1063},{"class":256,"line":267},[1064,1068,1072,1076,1081,1085,1089,1093,1097,1101],{"type":40,"tag":254,"props":1065,"children":1066},{"style":271},[1067],{"type":45,"value":8},{"type":40,"tag":254,"props":1069,"children":1070},{"style":276},[1071],{"type":45,"value":279},{"type":40,"tag":254,"props":1073,"children":1074},{"style":276},[1075],{"type":45,"value":362},{"type":40,"tag":254,"props":1077,"children":1078},{"style":276},[1079],{"type":45,"value":1080}," assign",{"type":40,"tag":254,"props":1082,"children":1083},{"style":276},[1084],{"type":45,"value":1041},{"type":40,"tag":254,"props":1086,"children":1087},{"style":276},[1088],{"type":45,"value":898},{"type":40,"tag":254,"props":1090,"children":1091},{"style":434},[1092],{"type":45,"value":878},{"type":40,"tag":254,"props":1094,"children":1095},{"style":276},[1096],{"type":45,"value":907},{"type":40,"tag":254,"props":1098,"children":1099},{"style":862},[1100],{"type":45,"value":888},{"type":40,"tag":254,"props":1102,"children":1103},{"style":434},[1104],{"type":45,"value":1105},">\n",{"type":40,"tag":78,"props":1107,"children":1108},{},[1109,1114,1116],{"type":40,"tag":66,"props":1110,"children":1111},{},[1112],{"type":45,"value":1113},"Redeploy",{"type":45,"value":1115}," (now the database exists, warmup will succeed):",{"type":40,"tag":243,"props":1117,"children":1119},{"className":245,"code":1118,"language":247,"meta":248,"style":248},"deno deploy --prod\n",[1120],{"type":40,"tag":102,"props":1121,"children":1122},{"__ignoreMap":248},[1123],{"type":40,"tag":254,"props":1124,"children":1125},{"class":256,"line":257},[1126,1130,1134],{"type":40,"tag":254,"props":1127,"children":1128},{"style":271},[1129],{"type":45,"value":8},{"type":40,"tag":254,"props":1131,"children":1132},{"style":276},[1133],{"type":45,"value":279},{"type":40,"tag":254,"props":1135,"children":1136},{"style":276},[1137],{"type":45,"value":1138}," --prod\n",{"type":40,"tag":48,"props":1140,"children":1141},{},[1142],{"type":45,"value":1143},"If the app has no startup dependencies, skip this step and deploy normally\nbelow.",{"type":40,"tag":397,"props":1145,"children":1147},{"id":1146},"step-4-deploy-based-on-configuration",[1148],{"type":45,"value":1149},"Step 4: Deploy Based on Configuration",{"type":40,"tag":48,"props":1151,"children":1152},{},[1153],{"type":40,"tag":66,"props":1154,"children":1155},{},[1156,1158,1164,1166,1172],{"type":45,"value":1157},"If ",{"type":40,"tag":102,"props":1159,"children":1161},{"className":1160},[],[1162],{"type":45,"value":1163},"deploy.org",{"type":45,"value":1165}," AND ",{"type":40,"tag":102,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":45,"value":1171},"deploy.app",{"type":45,"value":1173}," exist in deno.json:",{"type":40,"tag":243,"props":1175,"children":1177},{"className":245,"code":1176,"language":247,"meta":248,"style":248},"# Build if needed (Fresh, Astro, etc.)\ndeno task build\n\n# Deploy to production\ndeno deploy --prod\n",[1178],{"type":40,"tag":102,"props":1179,"children":1180},{"__ignoreMap":248},[1181,1189,1206,1213,1221],{"type":40,"tag":254,"props":1182,"children":1183},{"class":256,"line":257},[1184],{"type":40,"tag":254,"props":1185,"children":1186},{"style":261},[1187],{"type":45,"value":1188},"# Build if needed (Fresh, Astro, etc.)\n",{"type":40,"tag":254,"props":1190,"children":1191},{"class":256,"line":267},[1192,1196,1201],{"type":40,"tag":254,"props":1193,"children":1194},{"style":271},[1195],{"type":45,"value":8},{"type":40,"tag":254,"props":1197,"children":1198},{"style":276},[1199],{"type":45,"value":1200}," task",{"type":40,"tag":254,"props":1202,"children":1203},{"style":276},[1204],{"type":45,"value":1205}," build\n",{"type":40,"tag":254,"props":1207,"children":1208},{"class":256,"line":287},[1209],{"type":40,"tag":254,"props":1210,"children":1211},{"emptyLinePlaceholder":291},[1212],{"type":45,"value":294},{"type":40,"tag":254,"props":1214,"children":1215},{"class":256,"line":297},[1216],{"type":40,"tag":254,"props":1217,"children":1218},{"style":261},[1219],{"type":45,"value":1220},"# Deploy to production\n",{"type":40,"tag":254,"props":1222,"children":1223},{"class":256,"line":306},[1224,1228,1232],{"type":40,"tag":254,"props":1225,"children":1226},{"style":271},[1227],{"type":45,"value":8},{"type":40,"tag":254,"props":1229,"children":1230},{"style":276},[1231],{"type":45,"value":279},{"type":40,"tag":254,"props":1233,"children":1234},{"style":276},[1235],{"type":45,"value":1138},{"type":40,"tag":48,"props":1237,"children":1238},{},[1239],{"type":40,"tag":66,"props":1240,"children":1241},{},[1242],{"type":45,"value":1243},"If NO deploy config exists:",{"type":40,"tag":48,"props":1245,"children":1246},{},[1247,1252,1254,1259],{"type":40,"tag":66,"props":1248,"children":1249},{},[1250],{"type":45,"value":1251},"Apps must be created before they can be deployed to.",{"type":45,"value":1253}," You cannot run\n",{"type":40,"tag":102,"props":1255,"children":1257},{"className":1256},[],[1258],{"type":45,"value":393},{"type":45,"value":1260}," until an app exists.",{"type":40,"tag":48,"props":1262,"children":1263},{},[1264,1269],{"type":40,"tag":66,"props":1265,"children":1266},{},[1267],{"type":45,"value":1268},"IMPORTANT: Ask the user first",{"type":45,"value":1270}," - Do they have an existing app on Deno Deploy,\nor do they need to create a new one?",{"type":40,"tag":48,"props":1272,"children":1273},{},[1274,1279],{"type":40,"tag":66,"props":1275,"children":1276},{},[1277],{"type":45,"value":1278},"If they have an existing app",{"type":45,"value":1280},", add the config directly to deno.json:",{"type":40,"tag":243,"props":1282,"children":1286},{"className":1283,"code":1284,"language":1285,"meta":248,"style":248},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"deploy\": {\n    \"org\": \"\u003CORG_NAME>\",\n    \"app\": \"\u003CAPP_NAME>\"\n  }\n}\n","json",[1287],{"type":40,"tag":102,"props":1288,"children":1289},{"__ignoreMap":248},[1290,1298,1326,1365,1398,1406],{"type":40,"tag":254,"props":1291,"children":1292},{"class":256,"line":257},[1293],{"type":40,"tag":254,"props":1294,"children":1295},{"style":434},[1296],{"type":45,"value":1297},"{\n",{"type":40,"tag":254,"props":1299,"children":1300},{"class":256,"line":267},[1301,1306,1312,1316,1321],{"type":40,"tag":254,"props":1302,"children":1303},{"style":434},[1304],{"type":45,"value":1305},"  \"",{"type":40,"tag":254,"props":1307,"children":1309},{"style":1308},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1310],{"type":45,"value":1311},"deploy",{"type":40,"tag":254,"props":1313,"children":1314},{"style":434},[1315],{"type":45,"value":457},{"type":40,"tag":254,"props":1317,"children":1318},{"style":434},[1319],{"type":45,"value":1320},":",{"type":40,"tag":254,"props":1322,"children":1323},{"style":434},[1324],{"type":45,"value":1325}," {\n",{"type":40,"tag":254,"props":1327,"children":1328},{"class":256,"line":287},[1329,1334,1339,1343,1347,1351,1356,1360],{"type":40,"tag":254,"props":1330,"children":1331},{"style":434},[1332],{"type":45,"value":1333},"    \"",{"type":40,"tag":254,"props":1335,"children":1336},{"style":271},[1337],{"type":45,"value":1338},"org",{"type":40,"tag":254,"props":1340,"children":1341},{"style":434},[1342],{"type":45,"value":457},{"type":40,"tag":254,"props":1344,"children":1345},{"style":434},[1346],{"type":45,"value":1320},{"type":40,"tag":254,"props":1348,"children":1349},{"style":434},[1350],{"type":45,"value":447},{"type":40,"tag":254,"props":1352,"children":1353},{"style":276},[1354],{"type":45,"value":1355},"\u003CORG_NAME>",{"type":40,"tag":254,"props":1357,"children":1358},{"style":434},[1359],{"type":45,"value":457},{"type":40,"tag":254,"props":1361,"children":1362},{"style":434},[1363],{"type":45,"value":1364},",\n",{"type":40,"tag":254,"props":1366,"children":1367},{"class":256,"line":297},[1368,1372,1377,1381,1385,1389,1394],{"type":40,"tag":254,"props":1369,"children":1370},{"style":434},[1371],{"type":45,"value":1333},{"type":40,"tag":254,"props":1373,"children":1374},{"style":271},[1375],{"type":45,"value":1376},"app",{"type":40,"tag":254,"props":1378,"children":1379},{"style":434},[1380],{"type":45,"value":457},{"type":40,"tag":254,"props":1382,"children":1383},{"style":434},[1384],{"type":45,"value":1320},{"type":40,"tag":254,"props":1386,"children":1387},{"style":434},[1388],{"type":45,"value":447},{"type":40,"tag":254,"props":1390,"children":1391},{"style":276},[1392],{"type":45,"value":1393},"\u003CAPP_NAME>",{"type":40,"tag":254,"props":1395,"children":1396},{"style":434},[1397],{"type":45,"value":782},{"type":40,"tag":254,"props":1399,"children":1400},{"class":256,"line":306},[1401],{"type":40,"tag":254,"props":1402,"children":1403},{"style":434},[1404],{"type":45,"value":1405},"  }\n",{"type":40,"tag":254,"props":1407,"children":1408},{"class":256,"line":327},[1409],{"type":40,"tag":254,"props":1410,"children":1411},{"style":434},[1412],{"type":45,"value":1413},"}\n",{"type":40,"tag":48,"props":1415,"children":1416},{},[1417,1419,1425,1427,1432],{"type":45,"value":1418},"The org name is in the Deno Deploy console URL (e.g.,\n",{"type":40,"tag":102,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":45,"value":1424},"console.deno.com\u002Fyour-org-name",{"type":45,"value":1426},"). Once this config is in place, subsequent\ndeploys just need ",{"type":40,"tag":102,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":45,"value":393},{"type":45,"value":170},{"type":40,"tag":48,"props":1434,"children":1435},{},[1436],{"type":40,"tag":66,"props":1437,"children":1438},{},[1439],{"type":45,"value":1440},"If they need to create a new app:",{"type":40,"tag":48,"props":1442,"children":1443},{},[1444,1446,1454,1456,1461],{"type":45,"value":1445},"The CLI needs an organization name. Find it at ",{"type":40,"tag":1447,"props":1448,"children":1452},"a",{"href":1449,"rel":1450},"https:\u002F\u002Fconsole.deno.com",[1451],"nofollow",[1453],{"type":45,"value":1449},{"type":45,"value":1455}," - the\norg is in the URL path (e.g., ",{"type":40,"tag":102,"props":1457,"children":1459},{"className":1458},[],[1460],{"type":45,"value":1424},{"type":45,"value":1462},").",{"type":40,"tag":48,"props":1464,"children":1465},{},[1466,1471],{"type":40,"tag":66,"props":1467,"children":1468},{},[1469],{"type":45,"value":1470},"Interactive creation",{"type":45,"value":1472}," (opens a browser — only works when a human is at the\nkeyboard):",{"type":40,"tag":243,"props":1474,"children":1476},{"className":245,"code":1475,"language":247,"meta":248,"style":248},"deno deploy create --org \u003CORG_NAME>\n# A browser window opens - complete the app creation there\n",[1477],{"type":40,"tag":102,"props":1478,"children":1479},{"__ignoreMap":248},[1480,1516],{"type":40,"tag":254,"props":1481,"children":1482},{"class":256,"line":257},[1483,1487,1491,1495,1500,1504,1508,1512],{"type":40,"tag":254,"props":1484,"children":1485},{"style":271},[1486],{"type":45,"value":8},{"type":40,"tag":254,"props":1488,"children":1489},{"style":276},[1490],{"type":45,"value":279},{"type":40,"tag":254,"props":1492,"children":1493},{"style":276},[1494],{"type":45,"value":320},{"type":40,"tag":254,"props":1496,"children":1497},{"style":276},[1498],{"type":45,"value":1499}," --org",{"type":40,"tag":254,"props":1501,"children":1502},{"style":434},[1503],{"type":45,"value":878},{"type":40,"tag":254,"props":1505,"children":1506},{"style":276},[1507],{"type":45,"value":883},{"type":40,"tag":254,"props":1509,"children":1510},{"style":862},[1511],{"type":45,"value":888},{"type":40,"tag":254,"props":1513,"children":1514},{"style":434},[1515],{"type":45,"value":1105},{"type":40,"tag":254,"props":1517,"children":1518},{"class":256,"line":267},[1519],{"type":40,"tag":254,"props":1520,"children":1521},{"style":261},[1522],{"type":45,"value":1523},"# A browser window opens - complete the app creation there\n",{"type":40,"tag":48,"props":1525,"children":1526},{},[1527,1532],{"type":40,"tag":66,"props":1528,"children":1529},{},[1530],{"type":45,"value":1531},"Non-interactive creation",{"type":45,"value":1533}," (use when an AI agent is performing the deploy, or\nin CI\u002FCD):",{"type":40,"tag":243,"props":1535,"children":1537},{"className":245,"code":1536,"language":247,"meta":248,"style":248},"deno deploy create \\\n  --org \u003CORG_NAME> \\\n  --app \u003CAPP_NAME> \\\n  --source local \\\n  --runtime-mode dynamic \\\n  --entrypoint main.ts \\\n  --build-timeout 5 \\\n  --build-memory-limit 1024 \\\n  --region us\n",[1538],{"type":40,"tag":102,"props":1539,"children":1540},{"__ignoreMap":248},[1541,1560,1587,1615,1630,1646,1662,1677,1693],{"type":40,"tag":254,"props":1542,"children":1543},{"class":256,"line":257},[1544,1548,1552,1556],{"type":40,"tag":254,"props":1545,"children":1546},{"style":271},[1547],{"type":45,"value":8},{"type":40,"tag":254,"props":1549,"children":1550},{"style":276},[1551],{"type":45,"value":279},{"type":40,"tag":254,"props":1553,"children":1554},{"style":276},[1555],{"type":45,"value":320},{"type":40,"tag":254,"props":1557,"children":1558},{"style":862},[1559],{"type":45,"value":865},{"type":40,"tag":254,"props":1561,"children":1562},{"class":256,"line":267},[1563,1567,1571,1575,1579,1583],{"type":40,"tag":254,"props":1564,"children":1565},{"style":276},[1566],{"type":45,"value":873},{"type":40,"tag":254,"props":1568,"children":1569},{"style":434},[1570],{"type":45,"value":878},{"type":40,"tag":254,"props":1572,"children":1573},{"style":276},[1574],{"type":45,"value":883},{"type":40,"tag":254,"props":1576,"children":1577},{"style":862},[1578],{"type":45,"value":888},{"type":40,"tag":254,"props":1580,"children":1581},{"style":434},[1582],{"type":45,"value":893},{"type":40,"tag":254,"props":1584,"children":1585},{"style":862},[1586],{"type":45,"value":865},{"type":40,"tag":254,"props":1588,"children":1589},{"class":256,"line":287},[1590,1595,1599,1603,1607,1611],{"type":40,"tag":254,"props":1591,"children":1592},{"style":276},[1593],{"type":45,"value":1594},"  --app",{"type":40,"tag":254,"props":1596,"children":1597},{"style":434},[1598],{"type":45,"value":878},{"type":40,"tag":254,"props":1600,"children":1601},{"style":276},[1602],{"type":45,"value":907},{"type":40,"tag":254,"props":1604,"children":1605},{"style":862},[1606],{"type":45,"value":888},{"type":40,"tag":254,"props":1608,"children":1609},{"style":434},[1610],{"type":45,"value":893},{"type":40,"tag":254,"props":1612,"children":1613},{"style":862},[1614],{"type":45,"value":865},{"type":40,"tag":254,"props":1616,"children":1617},{"class":256,"line":297},[1618,1622,1626],{"type":40,"tag":254,"props":1619,"children":1620},{"style":276},[1621],{"type":45,"value":927},{"type":40,"tag":254,"props":1623,"children":1624},{"style":276},[1625],{"type":45,"value":932},{"type":40,"tag":254,"props":1627,"children":1628},{"style":862},[1629],{"type":45,"value":865},{"type":40,"tag":254,"props":1631,"children":1632},{"class":256,"line":306},[1633,1638,1642],{"type":40,"tag":254,"props":1634,"children":1635},{"style":276},[1636],{"type":45,"value":1637},"  --runtime-mode",{"type":40,"tag":254,"props":1639,"children":1640},{"style":276},[1641],{"type":45,"value":942},{"type":40,"tag":254,"props":1643,"children":1644},{"style":862},[1645],{"type":45,"value":865},{"type":40,"tag":254,"props":1647,"children":1648},{"class":256,"line":327},[1649,1654,1658],{"type":40,"tag":254,"props":1650,"children":1651},{"style":276},[1652],{"type":45,"value":1653},"  --entrypoint",{"type":40,"tag":254,"props":1655,"children":1656},{"style":276},[1657],{"type":45,"value":952},{"type":40,"tag":254,"props":1659,"children":1660},{"style":862},[1661],{"type":45,"value":865},{"type":40,"tag":254,"props":1663,"children":1664},{"class":256,"line":348},[1665,1669,1673],{"type":40,"tag":254,"props":1666,"children":1667},{"style":276},[1668],{"type":45,"value":964},{"type":40,"tag":254,"props":1670,"children":1671},{"style":568},[1672],{"type":45,"value":969},{"type":40,"tag":254,"props":1674,"children":1675},{"style":862},[1676],{"type":45,"value":865},{"type":40,"tag":254,"props":1678,"children":1679},{"class":256,"line":25},[1680,1685,1689],{"type":40,"tag":254,"props":1681,"children":1682},{"style":276},[1683],{"type":45,"value":1684},"  --build-memory-limit",{"type":40,"tag":254,"props":1686,"children":1687},{"style":568},[1688],{"type":45,"value":979},{"type":40,"tag":254,"props":1690,"children":1691},{"style":862},[1692],{"type":45,"value":865},{"type":40,"tag":254,"props":1694,"children":1696},{"class":256,"line":1695},9,[1697,1702],{"type":40,"tag":254,"props":1698,"children":1699},{"style":276},[1700],{"type":45,"value":1701},"  --region",{"type":40,"tag":254,"props":1703,"children":1704},{"style":276},[1705],{"type":45,"value":1706}," us\n",{"type":40,"tag":48,"props":1708,"children":1709},{},[1710,1712,1717,1719,1724,1726,1731],{"type":45,"value":1711},"The create command also does the initial deploy. After it completes, ",{"type":40,"tag":102,"props":1713,"children":1715},{"className":1714},[],[1716],{"type":45,"value":452},{"type":45,"value":1718},"\nis updated with ",{"type":40,"tag":102,"props":1720,"children":1722},{"className":1721},[],[1723],{"type":45,"value":1163},{"type":45,"value":1725}," and ",{"type":40,"tag":102,"props":1727,"children":1729},{"className":1728},[],[1730],{"type":45,"value":1171},{"type":45,"value":1732}," automatically. From that point on,\nsubsequent deploys only need:",{"type":40,"tag":243,"props":1734,"children":1735},{"className":245,"code":1118,"language":247,"meta":248,"style":248},[1736],{"type":40,"tag":102,"props":1737,"children":1738},{"__ignoreMap":248},[1739],{"type":40,"tag":254,"props":1740,"children":1741},{"class":256,"line":257},[1742,1746,1750],{"type":40,"tag":254,"props":1743,"children":1744},{"style":271},[1745],{"type":45,"value":8},{"type":40,"tag":254,"props":1747,"children":1748},{"style":276},[1749],{"type":45,"value":279},{"type":40,"tag":254,"props":1751,"children":1752},{"style":276},[1753],{"type":45,"value":1138},{"type":40,"tag":48,"props":1755,"children":1756},{},[1757],{"type":45,"value":1758},"After completion, verify the config was saved:",{"type":40,"tag":243,"props":1760,"children":1762},{"className":245,"code":1761,"language":247,"meta":248,"style":248},"grep -E '\"org\"|\"app\"' deno.json\n",[1763],{"type":40,"tag":102,"props":1764,"children":1765},{"__ignoreMap":248},[1766],{"type":40,"tag":254,"props":1767,"children":1768},{"class":256,"line":257},[1769,1773,1777,1781,1785,1789],{"type":40,"tag":254,"props":1770,"children":1771},{"style":271},[1772],{"type":45,"value":721},{"type":40,"tag":254,"props":1774,"children":1775},{"style":276},[1776],{"type":45,"value":726},{"type":40,"tag":254,"props":1778,"children":1779},{"style":434},[1780],{"type":45,"value":731},{"type":40,"tag":254,"props":1782,"children":1783},{"style":276},[1784],{"type":45,"value":736},{"type":40,"tag":254,"props":1786,"children":1787},{"style":434},[1788],{"type":45,"value":741},{"type":40,"tag":254,"props":1790,"children":1791},{"style":276},[1792],{"type":45,"value":1793}," deno.json\n",{"type":40,"tag":48,"props":1795,"children":1796},{},[1797,1802],{"type":40,"tag":66,"props":1798,"children":1799},{},[1800],{"type":45,"value":1801},"When an AI agent is performing the deployment",{"type":45,"value":1803},", always use the\nnon-interactive flow with explicit flags. The interactive flow requires browser\nwindows and terminal prompts that agents cannot navigate.",{"type":40,"tag":54,"props":1805,"children":1807},{"id":1806},"core-commands",[1808],{"type":45,"value":1809},"Core Commands",{"type":40,"tag":397,"props":1811,"children":1813},{"id":1812},"production-deployment",[1814],{"type":45,"value":1815},"Production Deployment",{"type":40,"tag":243,"props":1817,"children":1818},{"className":245,"code":1118,"language":247,"meta":248,"style":248},[1819],{"type":40,"tag":102,"props":1820,"children":1821},{"__ignoreMap":248},[1822],{"type":40,"tag":254,"props":1823,"children":1824},{"class":256,"line":257},[1825,1829,1833],{"type":40,"tag":254,"props":1826,"children":1827},{"style":271},[1828],{"type":45,"value":8},{"type":40,"tag":254,"props":1830,"children":1831},{"style":276},[1832],{"type":45,"value":279},{"type":40,"tag":254,"props":1834,"children":1835},{"style":276},[1836],{"type":45,"value":1138},{"type":40,"tag":397,"props":1838,"children":1840},{"id":1839},"preview-deployment",[1841],{"type":45,"value":1842},"Preview Deployment",{"type":40,"tag":243,"props":1844,"children":1846},{"className":245,"code":1845,"language":247,"meta":248,"style":248},"deno deploy\n",[1847],{"type":40,"tag":102,"props":1848,"children":1849},{"__ignoreMap":248},[1850],{"type":40,"tag":254,"props":1851,"children":1852},{"class":256,"line":257},[1853,1857],{"type":40,"tag":254,"props":1854,"children":1855},{"style":271},[1856],{"type":45,"value":8},{"type":40,"tag":254,"props":1858,"children":1859},{"style":276},[1860],{"type":45,"value":1861}," deploy\n",{"type":40,"tag":48,"props":1863,"children":1864},{},[1865],{"type":45,"value":1866},"Preview deployments create a unique URL for testing without affecting\nproduction.",{"type":40,"tag":397,"props":1868,"children":1870},{"id":1869},"targeting-specific-apps",[1871],{"type":45,"value":1872},"Targeting Specific Apps",{"type":40,"tag":243,"props":1874,"children":1876},{"className":245,"code":1875,"language":247,"meta":248,"style":248},"deno deploy --org my-org --app my-app --prod\n",[1877],{"type":40,"tag":102,"props":1878,"children":1879},{"__ignoreMap":248},[1880],{"type":40,"tag":254,"props":1881,"children":1882},{"class":256,"line":257},[1883,1887,1891,1895,1900,1904,1909],{"type":40,"tag":254,"props":1884,"children":1885},{"style":271},[1886],{"type":45,"value":8},{"type":40,"tag":254,"props":1888,"children":1889},{"style":276},[1890],{"type":45,"value":279},{"type":40,"tag":254,"props":1892,"children":1893},{"style":276},[1894],{"type":45,"value":1499},{"type":40,"tag":254,"props":1896,"children":1897},{"style":276},[1898],{"type":45,"value":1899}," my-org",{"type":40,"tag":254,"props":1901,"children":1902},{"style":276},[1903],{"type":45,"value":898},{"type":40,"tag":254,"props":1905,"children":1906},{"style":276},[1907],{"type":45,"value":1908}," my-app",{"type":40,"tag":254,"props":1910,"children":1911},{"style":276},[1912],{"type":45,"value":1138},{"type":40,"tag":397,"props":1914,"children":1916},{"id":1915},"configuring-an-entrypoint",[1917],{"type":45,"value":1918},"Configuring an Entrypoint",{"type":40,"tag":48,"props":1920,"children":1921},{},[1922,1924,1929,1931,1937],{"type":45,"value":1923},"Set the entrypoint in your ",{"type":40,"tag":102,"props":1925,"children":1927},{"className":1926},[],[1928],{"type":45,"value":452},{"type":45,"value":1930}," (this is used by ",{"type":40,"tag":102,"props":1932,"children":1934},{"className":1933},[],[1935],{"type":45,"value":1936},"deno deploy create",{"type":45,"value":1938},"\nduring app creation):",{"type":40,"tag":243,"props":1940,"children":1942},{"className":1283,"code":1941,"language":1285,"meta":248,"style":248},"{\n  \"deploy\": {\n    \"entrypoint\": \"main.ts\"\n  }\n}\n",[1943],{"type":40,"tag":102,"props":1944,"children":1945},{"__ignoreMap":248},[1946,1953,1976,2008,2015],{"type":40,"tag":254,"props":1947,"children":1948},{"class":256,"line":257},[1949],{"type":40,"tag":254,"props":1950,"children":1951},{"style":434},[1952],{"type":45,"value":1297},{"type":40,"tag":254,"props":1954,"children":1955},{"class":256,"line":267},[1956,1960,1964,1968,1972],{"type":40,"tag":254,"props":1957,"children":1958},{"style":434},[1959],{"type":45,"value":1305},{"type":40,"tag":254,"props":1961,"children":1962},{"style":1308},[1963],{"type":45,"value":1311},{"type":40,"tag":254,"props":1965,"children":1966},{"style":434},[1967],{"type":45,"value":457},{"type":40,"tag":254,"props":1969,"children":1970},{"style":434},[1971],{"type":45,"value":1320},{"type":40,"tag":254,"props":1973,"children":1974},{"style":434},[1975],{"type":45,"value":1325},{"type":40,"tag":254,"props":1977,"children":1978},{"class":256,"line":287},[1979,1983,1988,1992,1996,2000,2004],{"type":40,"tag":254,"props":1980,"children":1981},{"style":434},[1982],{"type":45,"value":1333},{"type":40,"tag":254,"props":1984,"children":1985},{"style":271},[1986],{"type":45,"value":1987},"entrypoint",{"type":40,"tag":254,"props":1989,"children":1990},{"style":434},[1991],{"type":45,"value":457},{"type":40,"tag":254,"props":1993,"children":1994},{"style":434},[1995],{"type":45,"value":1320},{"type":40,"tag":254,"props":1997,"children":1998},{"style":434},[1999],{"type":45,"value":447},{"type":40,"tag":254,"props":2001,"children":2002},{"style":276},[2003],{"type":45,"value":807},{"type":40,"tag":254,"props":2005,"children":2006},{"style":434},[2007],{"type":45,"value":782},{"type":40,"tag":254,"props":2009,"children":2010},{"class":256,"line":297},[2011],{"type":40,"tag":254,"props":2012,"children":2013},{"style":434},[2014],{"type":45,"value":1405},{"type":40,"tag":254,"props":2016,"children":2017},{"class":256,"line":306},[2018],{"type":40,"tag":254,"props":2019,"children":2020},{"style":434},[2021],{"type":45,"value":1413},{"type":40,"tag":48,"props":2023,"children":2024},{},[2025,2027,2033,2035,2040,2042,2047],{"type":45,"value":2026},"Note: ",{"type":40,"tag":102,"props":2028,"children":2030},{"className":2029},[],[2031],{"type":45,"value":2032},"--entrypoint",{"type":45,"value":2034}," is a flag on ",{"type":40,"tag":102,"props":2036,"children":2038},{"className":2037},[],[2039],{"type":45,"value":1936},{"type":45,"value":2041},", not on ",{"type":40,"tag":102,"props":2043,"children":2045},{"className":2044},[],[2046],{"type":45,"value":120},{"type":45,"value":2048},"\nitself.",{"type":40,"tag":397,"props":2050,"children":2052},{"id":2051},"additional-flags",[2053],{"type":45,"value":2054},"Additional Flags",{"type":40,"tag":48,"props":2056,"children":2057},{},[2058,2060,2065],{"type":45,"value":2059},"These flags are available on ",{"type":40,"tag":102,"props":2061,"children":2063},{"className":2062},[],[2064],{"type":45,"value":1936},{"type":45,"value":2066}," (and apply during the initial\ndeploy):",{"type":40,"tag":2068,"props":2069,"children":2070},"table",{},[2071,2090],{"type":40,"tag":2072,"props":2073,"children":2074},"thead",{},[2075],{"type":40,"tag":2076,"props":2077,"children":2078},"tr",{},[2079,2085],{"type":40,"tag":2080,"props":2081,"children":2082},"th",{},[2083],{"type":45,"value":2084},"Flag",{"type":40,"tag":2080,"props":2086,"children":2087},{},[2088],{"type":45,"value":2089},"Purpose",{"type":40,"tag":2091,"props":2092,"children":2093},"tbody",{},[2094,2112],{"type":40,"tag":2076,"props":2095,"children":2096},{},[2097,2107],{"type":40,"tag":2098,"props":2099,"children":2100},"td",{},[2101],{"type":40,"tag":102,"props":2102,"children":2104},{"className":2103},[],[2105],{"type":45,"value":2106},"--allow-node-modules",{"type":40,"tag":2098,"props":2108,"children":2109},{},[2110],{"type":45,"value":2111},"Include node_modules directory in upload",{"type":40,"tag":2076,"props":2113,"children":2114},{},[2115,2123],{"type":40,"tag":2098,"props":2116,"children":2117},{},[2118],{"type":40,"tag":102,"props":2119,"children":2121},{"className":2120},[],[2122],{"type":45,"value":835},{"type":40,"tag":2098,"props":2124,"children":2125},{},[2126],{"type":45,"value":2127},"Skip waiting for the build to complete",{"type":40,"tag":54,"props":2129,"children":2131},{"id":2130},"creating-apps-non-interactive-reference",[2132],{"type":45,"value":2133},"Creating Apps (Non-Interactive Reference)",{"type":40,"tag":48,"props":2135,"children":2136},{},[2137,2139,2145,2147,2152],{"type":45,"value":2138},"When any flag beyond ",{"type":40,"tag":102,"props":2140,"children":2142},{"className":2141},[],[2143],{"type":45,"value":2144},"--org",{"type":45,"value":2146}," is provided, ",{"type":40,"tag":102,"props":2148,"children":2150},{"className":2149},[],[2151],{"type":45,"value":1936},{"type":45,"value":2153}," runs in\nnon-interactive mode — all required flags must be specified. This is the\nrecommended approach for AI agents and CI\u002FCD pipelines.",{"type":40,"tag":397,"props":2155,"children":2157},{"id":2156},"required-flags",[2158],{"type":45,"value":2159},"Required Flags",{"type":40,"tag":2068,"props":2161,"children":2162},{},[2163,2178],{"type":40,"tag":2072,"props":2164,"children":2165},{},[2166],{"type":40,"tag":2076,"props":2167,"children":2168},{},[2169,2173],{"type":40,"tag":2080,"props":2170,"children":2171},{},[2172],{"type":45,"value":2084},{"type":40,"tag":2080,"props":2174,"children":2175},{},[2176],{"type":45,"value":2177},"Description",{"type":40,"tag":2091,"props":2179,"children":2180},{},[2181,2198,2223,2240,2257,2274],{"type":40,"tag":2076,"props":2182,"children":2183},{},[2184,2193],{"type":40,"tag":2098,"props":2185,"children":2186},{},[2187],{"type":40,"tag":102,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":45,"value":2192},"--org \u003Cname>",{"type":40,"tag":2098,"props":2194,"children":2195},{},[2196],{"type":45,"value":2197},"Organization name",{"type":40,"tag":2076,"props":2199,"children":2200},{},[2201,2210],{"type":40,"tag":2098,"props":2202,"children":2203},{},[2204],{"type":40,"tag":102,"props":2205,"children":2207},{"className":2206},[],[2208],{"type":45,"value":2209},"--app \u003Cname>",{"type":40,"tag":2098,"props":2211,"children":2212},{},[2213,2215,2221],{"type":45,"value":2214},"Application name (becomes your URL: ",{"type":40,"tag":102,"props":2216,"children":2218},{"className":2217},[],[2219],{"type":45,"value":2220},"\u003Capp>.deno.dev",{"type":45,"value":2222},")",{"type":40,"tag":2076,"props":2224,"children":2225},{},[2226,2235],{"type":40,"tag":2098,"props":2227,"children":2228},{},[2229],{"type":40,"tag":102,"props":2230,"children":2232},{"className":2231},[],[2233],{"type":45,"value":2234},"--source \u003Clocal|github>",{"type":40,"tag":2098,"props":2236,"children":2237},{},[2238],{"type":45,"value":2239},"Deploy from local files or a GitHub repo",{"type":40,"tag":2076,"props":2241,"children":2242},{},[2243,2252],{"type":40,"tag":2098,"props":2244,"children":2245},{},[2246],{"type":40,"tag":102,"props":2247,"children":2249},{"className":2248},[],[2250],{"type":45,"value":2251},"--build-timeout \u003Cminutes>",{"type":40,"tag":2098,"props":2253,"children":2254},{},[2255],{"type":45,"value":2256},"Build timeout: 5, 10, 15, 20, 25, or 30",{"type":40,"tag":2076,"props":2258,"children":2259},{},[2260,2269],{"type":40,"tag":2098,"props":2261,"children":2262},{},[2263],{"type":40,"tag":102,"props":2264,"children":2266},{"className":2265},[],[2267],{"type":45,"value":2268},"--build-memory-limit \u003CMB>",{"type":40,"tag":2098,"props":2270,"children":2271},{},[2272],{"type":45,"value":2273},"Memory limit: 1024, 2048, 3072, or 4096",{"type":40,"tag":2076,"props":2275,"children":2276},{},[2277,2286],{"type":40,"tag":2098,"props":2278,"children":2279},{},[2280],{"type":40,"tag":102,"props":2281,"children":2283},{"className":2282},[],[2284],{"type":45,"value":2285},"--region \u003Cregion>",{"type":40,"tag":2098,"props":2287,"children":2288},{},[2289],{"type":45,"value":2290},"Deployment region: us, eu, or global",{"type":40,"tag":397,"props":2292,"children":2294},{"id":2293},"github-source-flags",[2295],{"type":45,"value":2296},"GitHub Source Flags",{"type":40,"tag":48,"props":2298,"children":2299},{},[2300,2302,2308],{"type":45,"value":2301},"When using ",{"type":40,"tag":102,"props":2303,"children":2305},{"className":2304},[],[2306],{"type":45,"value":2307},"--source github",{"type":45,"value":2309},", you also need:",{"type":40,"tag":2068,"props":2311,"children":2312},{},[2313,2327],{"type":40,"tag":2072,"props":2314,"children":2315},{},[2316],{"type":40,"tag":2076,"props":2317,"children":2318},{},[2319,2323],{"type":40,"tag":2080,"props":2320,"children":2321},{},[2322],{"type":45,"value":2084},{"type":40,"tag":2080,"props":2324,"children":2325},{},[2326],{"type":45,"value":2177},{"type":40,"tag":2091,"props":2328,"children":2329},{},[2330,2347],{"type":40,"tag":2076,"props":2331,"children":2332},{},[2333,2342],{"type":40,"tag":2098,"props":2334,"children":2335},{},[2336],{"type":40,"tag":102,"props":2337,"children":2339},{"className":2338},[],[2340],{"type":45,"value":2341},"--owner \u003Cname>",{"type":40,"tag":2098,"props":2343,"children":2344},{},[2345],{"type":45,"value":2346},"GitHub repository owner",{"type":40,"tag":2076,"props":2348,"children":2349},{},[2350,2359],{"type":40,"tag":2098,"props":2351,"children":2352},{},[2353],{"type":40,"tag":102,"props":2354,"children":2356},{"className":2355},[],[2357],{"type":45,"value":2358},"--repo \u003Cname>",{"type":40,"tag":2098,"props":2360,"children":2361},{},[2362],{"type":45,"value":2363},"GitHub repository name",{"type":40,"tag":397,"props":2365,"children":2367},{"id":2366},"build-configuration-flags",[2368],{"type":45,"value":2369},"Build Configuration Flags",{"type":40,"tag":2068,"props":2371,"children":2372},{},[2373,2387],{"type":40,"tag":2072,"props":2374,"children":2375},{},[2376],{"type":40,"tag":2076,"props":2377,"children":2378},{},[2379,2383],{"type":40,"tag":2080,"props":2380,"children":2381},{},[2382],{"type":45,"value":2084},{"type":40,"tag":2080,"props":2384,"children":2385},{},[2386],{"type":45,"value":2177},{"type":40,"tag":2091,"props":2388,"children":2389},{},[2390,2407,2431,2448,2465,2482],{"type":40,"tag":2076,"props":2391,"children":2392},{},[2393,2402],{"type":40,"tag":2098,"props":2394,"children":2395},{},[2396],{"type":40,"tag":102,"props":2397,"children":2399},{"className":2398},[],[2400],{"type":45,"value":2401},"--app-directory \u003Cpath>",{"type":40,"tag":2098,"props":2403,"children":2404},{},[2405],{"type":45,"value":2406},"Path to app directory (for monorepos)",{"type":40,"tag":2076,"props":2408,"children":2409},{},[2410,2419],{"type":40,"tag":2098,"props":2411,"children":2412},{},[2413],{"type":40,"tag":102,"props":2414,"children":2416},{"className":2415},[],[2417],{"type":45,"value":2418},"--framework-preset \u003Cpreset>",{"type":40,"tag":2098,"props":2420,"children":2421},{},[2422,2424,2430],{"type":45,"value":2423},"Framework preset (see ",{"type":40,"tag":1447,"props":2425,"children":2427},{"href":2426},"references\u002FFRAMEWORKS.md",[2428],{"type":45,"value":2429},"Frameworks",{"type":45,"value":2222},{"type":40,"tag":2076,"props":2432,"children":2433},{},[2434,2443],{"type":40,"tag":2098,"props":2435,"children":2436},{},[2437],{"type":40,"tag":102,"props":2438,"children":2440},{"className":2439},[],[2441],{"type":45,"value":2442},"--install-command \u003Ccmd>",{"type":40,"tag":2098,"props":2444,"children":2445},{},[2446],{"type":45,"value":2447},"Custom install command",{"type":40,"tag":2076,"props":2449,"children":2450},{},[2451,2460],{"type":40,"tag":2098,"props":2452,"children":2453},{},[2454],{"type":40,"tag":102,"props":2455,"children":2457},{"className":2456},[],[2458],{"type":45,"value":2459},"--build-command \u003Ccmd>",{"type":40,"tag":2098,"props":2461,"children":2462},{},[2463],{"type":45,"value":2464},"Custom build command",{"type":40,"tag":2076,"props":2466,"children":2467},{},[2468,2477],{"type":40,"tag":2098,"props":2469,"children":2470},{},[2471],{"type":40,"tag":102,"props":2472,"children":2474},{"className":2473},[],[2475],{"type":45,"value":2476},"--pre-deploy-command \u003Ccmd>",{"type":40,"tag":2098,"props":2478,"children":2479},{},[2480],{"type":45,"value":2481},"Command to run before deploy",{"type":40,"tag":2076,"props":2483,"children":2484},{},[2485,2494],{"type":40,"tag":2098,"props":2486,"children":2487},{},[2488],{"type":40,"tag":102,"props":2489,"children":2491},{"className":2490},[],[2492],{"type":45,"value":2493},"--do-not-use-detected-build-config",{"type":40,"tag":2098,"props":2495,"children":2496},{},[2497],{"type":45,"value":2498},"Skip auto-detection of framework config",{"type":40,"tag":48,"props":2500,"children":2501},{},[2502,2504,2510,2512,2518,2519,2525,2527,2533,2535,2540,2542,2573],{"type":45,"value":2503},"The CLI auto-detects your framework and build configuration. If a framework is\ndetected, you can skip ",{"type":40,"tag":102,"props":2505,"children":2507},{"className":2506},[],[2508],{"type":45,"value":2509},"--install-command",{"type":45,"value":2511},", ",{"type":40,"tag":102,"props":2513,"children":2515},{"className":2514},[],[2516],{"type":45,"value":2517},"--build-command",{"type":45,"value":1364},{"type":40,"tag":102,"props":2520,"children":2522},{"className":2521},[],[2523],{"type":45,"value":2524},"--pre-deploy-command",{"type":45,"value":2526},", and ",{"type":40,"tag":102,"props":2528,"children":2530},{"className":2529},[],[2531],{"type":45,"value":2532},"--runtime-mode",{"type":45,"value":2534}," — they'll be inferred from the\npreset. Use ",{"type":40,"tag":102,"props":2536,"children":2538},{"className":2537},[],[2539],{"type":45,"value":2493},{"type":45,"value":2541}," to override detection. ",{"type":40,"tag":66,"props":2543,"children":2544},{},[2545,2547,2552,2553,2558,2559,2564,2566,2571],{"type":45,"value":2546},"When\nusing this flag, all three build commands (",{"type":40,"tag":102,"props":2548,"children":2550},{"className":2549},[],[2551],{"type":45,"value":2509},{"type":45,"value":1364},{"type":40,"tag":102,"props":2554,"children":2556},{"className":2555},[],[2557],{"type":45,"value":2517},{"type":45,"value":2511},{"type":40,"tag":102,"props":2560,"children":2562},{"className":2561},[],[2563],{"type":45,"value":2524},{"type":45,"value":2565},") plus ",{"type":40,"tag":102,"props":2567,"children":2569},{"className":2568},[],[2570],{"type":45,"value":2532},{"type":45,"value":2572}," become\nrequired",{"type":45,"value":2574}," — omitting any of them causes exit code 2.",{"type":40,"tag":397,"props":2576,"children":2578},{"id":2577},"runtime-mode-flags",[2579],{"type":45,"value":2580},"Runtime Mode Flags",{"type":40,"tag":48,"props":2582,"children":2583},{},[2584,2586,2592],{"type":45,"value":2585},"You must pick a runtime mode with ",{"type":40,"tag":102,"props":2587,"children":2589},{"className":2588},[],[2590],{"type":45,"value":2591},"--runtime-mode \u003Cdynamic|static>",{"type":45,"value":2593}," (unless a\nframework preset handles it).",{"type":40,"tag":48,"props":2595,"children":2596},{},[2597,2602],{"type":40,"tag":66,"props":2598,"children":2599},{},[2600],{"type":45,"value":2601},"Dynamic mode",{"type":45,"value":2603}," (for apps with a server):",{"type":40,"tag":2068,"props":2605,"children":2606},{},[2607,2621],{"type":40,"tag":2072,"props":2608,"children":2609},{},[2610],{"type":40,"tag":2076,"props":2611,"children":2612},{},[2613,2617],{"type":40,"tag":2080,"props":2614,"children":2615},{},[2616],{"type":45,"value":2084},{"type":40,"tag":2080,"props":2618,"children":2619},{},[2620],{"type":45,"value":2177},{"type":40,"tag":2091,"props":2622,"children":2623},{},[2624,2641,2658],{"type":40,"tag":2076,"props":2625,"children":2626},{},[2627,2636],{"type":40,"tag":2098,"props":2628,"children":2629},{},[2630],{"type":40,"tag":102,"props":2631,"children":2633},{"className":2632},[],[2634],{"type":45,"value":2635},"--entrypoint \u003Cpath>",{"type":40,"tag":2098,"props":2637,"children":2638},{},[2639],{"type":45,"value":2640},"Entry file (required for dynamic mode)",{"type":40,"tag":2076,"props":2642,"children":2643},{},[2644,2653],{"type":40,"tag":2098,"props":2645,"children":2646},{},[2647],{"type":40,"tag":102,"props":2648,"children":2650},{"className":2649},[],[2651],{"type":45,"value":2652},"--arguments \u003Cargs>",{"type":40,"tag":2098,"props":2654,"children":2655},{},[2656],{"type":45,"value":2657},"Arguments passed to entrypoint (repeatable)",{"type":40,"tag":2076,"props":2659,"children":2660},{},[2661,2670],{"type":40,"tag":2098,"props":2662,"children":2663},{},[2664],{"type":40,"tag":102,"props":2665,"children":2667},{"className":2666},[],[2668],{"type":45,"value":2669},"--working-directory \u003Ccwd>",{"type":40,"tag":2098,"props":2671,"children":2672},{},[2673],{"type":45,"value":2674},"Working directory for the process",{"type":40,"tag":48,"props":2676,"children":2677},{},[2678,2683],{"type":40,"tag":66,"props":2679,"children":2680},{},[2681],{"type":45,"value":2682},"Static mode",{"type":45,"value":2684}," (for static sites):",{"type":40,"tag":2068,"props":2686,"children":2687},{},[2688,2702],{"type":40,"tag":2072,"props":2689,"children":2690},{},[2691],{"type":40,"tag":2076,"props":2692,"children":2693},{},[2694,2698],{"type":40,"tag":2080,"props":2695,"children":2696},{},[2697],{"type":45,"value":2084},{"type":40,"tag":2080,"props":2699,"children":2700},{},[2701],{"type":45,"value":2177},{"type":40,"tag":2091,"props":2703,"children":2704},{},[2705,2722],{"type":40,"tag":2076,"props":2706,"children":2707},{},[2708,2717],{"type":40,"tag":2098,"props":2709,"children":2710},{},[2711],{"type":40,"tag":102,"props":2712,"children":2714},{"className":2713},[],[2715],{"type":45,"value":2716},"--static-dir \u003Cdir>",{"type":40,"tag":2098,"props":2718,"children":2719},{},[2720],{"type":45,"value":2721},"Directory to serve static files from (required)",{"type":40,"tag":2076,"props":2723,"children":2724},{},[2725,2734],{"type":40,"tag":2098,"props":2726,"children":2727},{},[2728],{"type":40,"tag":102,"props":2729,"children":2731},{"className":2730},[],[2732],{"type":45,"value":2733},"--single-page-app",{"type":40,"tag":2098,"props":2735,"children":2736},{},[2737],{"type":45,"value":2738},"Serve index.html for routes that don't match a file",{"type":40,"tag":397,"props":2740,"children":2742},{"id":2741},"other-flags",[2743],{"type":45,"value":2744},"Other Flags",{"type":40,"tag":2068,"props":2746,"children":2747},{},[2748,2762],{"type":40,"tag":2072,"props":2749,"children":2750},{},[2751],{"type":40,"tag":2076,"props":2752,"children":2753},{},[2754,2758],{"type":40,"tag":2080,"props":2755,"children":2756},{},[2757],{"type":45,"value":2084},{"type":40,"tag":2080,"props":2759,"children":2760},{},[2761],{"type":45,"value":2177},{"type":40,"tag":2091,"props":2763,"children":2764},{},[2765,2782,2798],{"type":40,"tag":2076,"props":2766,"children":2767},{},[2768,2777],{"type":40,"tag":2098,"props":2769,"children":2770},{},[2771],{"type":40,"tag":102,"props":2772,"children":2774},{"className":2773},[],[2775],{"type":45,"value":2776},"--dry-run",{"type":40,"tag":2098,"props":2778,"children":2779},{},[2780],{"type":45,"value":2781},"Validate everything without actually creating the app",{"type":40,"tag":2076,"props":2783,"children":2784},{},[2785,2793],{"type":40,"tag":2098,"props":2786,"children":2787},{},[2788],{"type":40,"tag":102,"props":2789,"children":2791},{"className":2790},[],[2792],{"type":45,"value":835},{"type":40,"tag":2098,"props":2794,"children":2795},{},[2796],{"type":45,"value":2797},"Don't wait for the build to complete",{"type":40,"tag":2076,"props":2799,"children":2800},{},[2801,2809],{"type":40,"tag":2098,"props":2802,"children":2803},{},[2804],{"type":40,"tag":102,"props":2805,"children":2807},{"className":2806},[],[2808],{"type":45,"value":2106},{"type":40,"tag":2098,"props":2810,"children":2811},{},[2812],{"type":45,"value":2813},"Include node_modules in the upload",{"type":40,"tag":397,"props":2815,"children":2817},{"id":2816},"examples",[2818],{"type":45,"value":2819},"Examples",{"type":40,"tag":48,"props":2821,"children":2822},{},[2823],{"type":40,"tag":66,"props":2824,"children":2825},{},[2826],{"type":45,"value":2827},"Simple Deno server:",{"type":40,"tag":243,"props":2829,"children":2831},{"className":245,"code":2830,"language":247,"meta":248,"style":248},"deno deploy create \\\n  --org my-org --app my-api \\\n  --source local \\\n  --runtime-mode dynamic --entrypoint main.ts \\\n  --build-timeout 5 --build-memory-limit 1024 --region us\n",[2832],{"type":40,"tag":102,"props":2833,"children":2834},{"__ignoreMap":248},[2835,2854,2878,2893,2916],{"type":40,"tag":254,"props":2836,"children":2837},{"class":256,"line":257},[2838,2842,2846,2850],{"type":40,"tag":254,"props":2839,"children":2840},{"style":271},[2841],{"type":45,"value":8},{"type":40,"tag":254,"props":2843,"children":2844},{"style":276},[2845],{"type":45,"value":279},{"type":40,"tag":254,"props":2847,"children":2848},{"style":276},[2849],{"type":45,"value":320},{"type":40,"tag":254,"props":2851,"children":2852},{"style":862},[2853],{"type":45,"value":865},{"type":40,"tag":254,"props":2855,"children":2856},{"class":256,"line":267},[2857,2861,2865,2869,2874],{"type":40,"tag":254,"props":2858,"children":2859},{"style":276},[2860],{"type":45,"value":873},{"type":40,"tag":254,"props":2862,"children":2863},{"style":276},[2864],{"type":45,"value":1899},{"type":40,"tag":254,"props":2866,"children":2867},{"style":276},[2868],{"type":45,"value":898},{"type":40,"tag":254,"props":2870,"children":2871},{"style":276},[2872],{"type":45,"value":2873}," my-api",{"type":40,"tag":254,"props":2875,"children":2876},{"style":862},[2877],{"type":45,"value":865},{"type":40,"tag":254,"props":2879,"children":2880},{"class":256,"line":287},[2881,2885,2889],{"type":40,"tag":254,"props":2882,"children":2883},{"style":276},[2884],{"type":45,"value":927},{"type":40,"tag":254,"props":2886,"children":2887},{"style":276},[2888],{"type":45,"value":932},{"type":40,"tag":254,"props":2890,"children":2891},{"style":862},[2892],{"type":45,"value":865},{"type":40,"tag":254,"props":2894,"children":2895},{"class":256,"line":297},[2896,2900,2904,2908,2912],{"type":40,"tag":254,"props":2897,"children":2898},{"style":276},[2899],{"type":45,"value":1637},{"type":40,"tag":254,"props":2901,"children":2902},{"style":276},[2903],{"type":45,"value":942},{"type":40,"tag":254,"props":2905,"children":2906},{"style":276},[2907],{"type":45,"value":947},{"type":40,"tag":254,"props":2909,"children":2910},{"style":276},[2911],{"type":45,"value":952},{"type":40,"tag":254,"props":2913,"children":2914},{"style":862},[2915],{"type":45,"value":865},{"type":40,"tag":254,"props":2917,"children":2918},{"class":256,"line":306},[2919,2923,2927,2931,2935,2939],{"type":40,"tag":254,"props":2920,"children":2921},{"style":276},[2922],{"type":45,"value":964},{"type":40,"tag":254,"props":2924,"children":2925},{"style":568},[2926],{"type":45,"value":969},{"type":40,"tag":254,"props":2928,"children":2929},{"style":276},[2930],{"type":45,"value":974},{"type":40,"tag":254,"props":2932,"children":2933},{"style":568},[2934],{"type":45,"value":979},{"type":40,"tag":254,"props":2936,"children":2937},{"style":276},[2938],{"type":45,"value":984},{"type":40,"tag":254,"props":2940,"children":2941},{"style":276},[2942],{"type":45,"value":1706},{"type":40,"tag":48,"props":2944,"children":2945},{},[2946],{"type":40,"tag":66,"props":2947,"children":2948},{},[2949],{"type":45,"value":2950},"Fresh app (framework auto-detected):",{"type":40,"tag":243,"props":2952,"children":2954},{"className":245,"code":2953,"language":247,"meta":248,"style":248},"deno deploy create \\\n  --org my-org --app my-fresh-app \\\n  --source local \\\n  --build-timeout 5 --build-memory-limit 1024 --region us\n",[2955],{"type":40,"tag":102,"props":2956,"children":2957},{"__ignoreMap":248},[2958,2977,3001,3016],{"type":40,"tag":254,"props":2959,"children":2960},{"class":256,"line":257},[2961,2965,2969,2973],{"type":40,"tag":254,"props":2962,"children":2963},{"style":271},[2964],{"type":45,"value":8},{"type":40,"tag":254,"props":2966,"children":2967},{"style":276},[2968],{"type":45,"value":279},{"type":40,"tag":254,"props":2970,"children":2971},{"style":276},[2972],{"type":45,"value":320},{"type":40,"tag":254,"props":2974,"children":2975},{"style":862},[2976],{"type":45,"value":865},{"type":40,"tag":254,"props":2978,"children":2979},{"class":256,"line":267},[2980,2984,2988,2992,2997],{"type":40,"tag":254,"props":2981,"children":2982},{"style":276},[2983],{"type":45,"value":873},{"type":40,"tag":254,"props":2985,"children":2986},{"style":276},[2987],{"type":45,"value":1899},{"type":40,"tag":254,"props":2989,"children":2990},{"style":276},[2991],{"type":45,"value":898},{"type":40,"tag":254,"props":2993,"children":2994},{"style":276},[2995],{"type":45,"value":2996}," my-fresh-app",{"type":40,"tag":254,"props":2998,"children":2999},{"style":862},[3000],{"type":45,"value":865},{"type":40,"tag":254,"props":3002,"children":3003},{"class":256,"line":287},[3004,3008,3012],{"type":40,"tag":254,"props":3005,"children":3006},{"style":276},[3007],{"type":45,"value":927},{"type":40,"tag":254,"props":3009,"children":3010},{"style":276},[3011],{"type":45,"value":932},{"type":40,"tag":254,"props":3013,"children":3014},{"style":862},[3015],{"type":45,"value":865},{"type":40,"tag":254,"props":3017,"children":3018},{"class":256,"line":297},[3019,3023,3027,3031,3035,3039],{"type":40,"tag":254,"props":3020,"children":3021},{"style":276},[3022],{"type":45,"value":964},{"type":40,"tag":254,"props":3024,"children":3025},{"style":568},[3026],{"type":45,"value":969},{"type":40,"tag":254,"props":3028,"children":3029},{"style":276},[3030],{"type":45,"value":974},{"type":40,"tag":254,"props":3032,"children":3033},{"style":568},[3034],{"type":45,"value":979},{"type":40,"tag":254,"props":3036,"children":3037},{"style":276},[3038],{"type":45,"value":984},{"type":40,"tag":254,"props":3040,"children":3041},{"style":276},[3042],{"type":45,"value":1706},{"type":40,"tag":48,"props":3044,"children":3045},{},[3046],{"type":40,"tag":66,"props":3047,"children":3048},{},[3049],{"type":45,"value":3050},"Next.js from GitHub:",{"type":40,"tag":243,"props":3052,"children":3054},{"className":245,"code":3053,"language":247,"meta":248,"style":248},"deno deploy create \\\n  --org my-org --app my-next-app \\\n  --source github --owner my-github-user --repo my-next-repo \\\n  --framework-preset Next \\\n  --build-timeout 15 --build-memory-limit 2048 --region us \\\n  --allow-node-modules\n",[3055],{"type":40,"tag":102,"props":3056,"children":3057},{"__ignoreMap":248},[3058,3077,3101,3137,3154,3187],{"type":40,"tag":254,"props":3059,"children":3060},{"class":256,"line":257},[3061,3065,3069,3073],{"type":40,"tag":254,"props":3062,"children":3063},{"style":271},[3064],{"type":45,"value":8},{"type":40,"tag":254,"props":3066,"children":3067},{"style":276},[3068],{"type":45,"value":279},{"type":40,"tag":254,"props":3070,"children":3071},{"style":276},[3072],{"type":45,"value":320},{"type":40,"tag":254,"props":3074,"children":3075},{"style":862},[3076],{"type":45,"value":865},{"type":40,"tag":254,"props":3078,"children":3079},{"class":256,"line":267},[3080,3084,3088,3092,3097],{"type":40,"tag":254,"props":3081,"children":3082},{"style":276},[3083],{"type":45,"value":873},{"type":40,"tag":254,"props":3085,"children":3086},{"style":276},[3087],{"type":45,"value":1899},{"type":40,"tag":254,"props":3089,"children":3090},{"style":276},[3091],{"type":45,"value":898},{"type":40,"tag":254,"props":3093,"children":3094},{"style":276},[3095],{"type":45,"value":3096}," my-next-app",{"type":40,"tag":254,"props":3098,"children":3099},{"style":862},[3100],{"type":45,"value":865},{"type":40,"tag":254,"props":3102,"children":3103},{"class":256,"line":287},[3104,3108,3113,3118,3123,3128,3133],{"type":40,"tag":254,"props":3105,"children":3106},{"style":276},[3107],{"type":45,"value":927},{"type":40,"tag":254,"props":3109,"children":3110},{"style":276},[3111],{"type":45,"value":3112}," github",{"type":40,"tag":254,"props":3114,"children":3115},{"style":276},[3116],{"type":45,"value":3117}," --owner",{"type":40,"tag":254,"props":3119,"children":3120},{"style":276},[3121],{"type":45,"value":3122}," my-github-user",{"type":40,"tag":254,"props":3124,"children":3125},{"style":276},[3126],{"type":45,"value":3127}," --repo",{"type":40,"tag":254,"props":3129,"children":3130},{"style":276},[3131],{"type":45,"value":3132}," my-next-repo",{"type":40,"tag":254,"props":3134,"children":3135},{"style":862},[3136],{"type":45,"value":865},{"type":40,"tag":254,"props":3138,"children":3139},{"class":256,"line":297},[3140,3145,3150],{"type":40,"tag":254,"props":3141,"children":3142},{"style":276},[3143],{"type":45,"value":3144},"  --framework-preset",{"type":40,"tag":254,"props":3146,"children":3147},{"style":276},[3148],{"type":45,"value":3149}," Next",{"type":40,"tag":254,"props":3151,"children":3152},{"style":862},[3153],{"type":45,"value":865},{"type":40,"tag":254,"props":3155,"children":3156},{"class":256,"line":306},[3157,3161,3166,3170,3175,3179,3183],{"type":40,"tag":254,"props":3158,"children":3159},{"style":276},[3160],{"type":45,"value":964},{"type":40,"tag":254,"props":3162,"children":3163},{"style":568},[3164],{"type":45,"value":3165}," 15",{"type":40,"tag":254,"props":3167,"children":3168},{"style":276},[3169],{"type":45,"value":974},{"type":40,"tag":254,"props":3171,"children":3172},{"style":568},[3173],{"type":45,"value":3174}," 2048",{"type":40,"tag":254,"props":3176,"children":3177},{"style":276},[3178],{"type":45,"value":984},{"type":40,"tag":254,"props":3180,"children":3181},{"style":276},[3182],{"type":45,"value":989},{"type":40,"tag":254,"props":3184,"children":3185},{"style":862},[3186],{"type":45,"value":865},{"type":40,"tag":254,"props":3188,"children":3189},{"class":256,"line":327},[3190],{"type":40,"tag":254,"props":3191,"children":3192},{"style":276},[3193],{"type":45,"value":3194},"  --allow-node-modules\n",{"type":40,"tag":48,"props":3196,"children":3197},{},[3198],{"type":40,"tag":66,"props":3199,"children":3200},{},[3201],{"type":45,"value":3202},"Static site:",{"type":40,"tag":243,"props":3204,"children":3206},{"className":245,"code":3205,"language":247,"meta":248,"style":248},"deno deploy create \\\n  --org my-org --app my-static-site \\\n  --source local \\\n  --runtime-mode static --static-dir dist --single-page-app \\\n  --build-command \"deno task build\" \\\n  --build-timeout 5 --build-memory-limit 1024 --region us\n",[3207],{"type":40,"tag":102,"props":3208,"children":3209},{"__ignoreMap":248},[3210,3229,3253,3268,3299,3324],{"type":40,"tag":254,"props":3211,"children":3212},{"class":256,"line":257},[3213,3217,3221,3225],{"type":40,"tag":254,"props":3214,"children":3215},{"style":271},[3216],{"type":45,"value":8},{"type":40,"tag":254,"props":3218,"children":3219},{"style":276},[3220],{"type":45,"value":279},{"type":40,"tag":254,"props":3222,"children":3223},{"style":276},[3224],{"type":45,"value":320},{"type":40,"tag":254,"props":3226,"children":3227},{"style":862},[3228],{"type":45,"value":865},{"type":40,"tag":254,"props":3230,"children":3231},{"class":256,"line":267},[3232,3236,3240,3244,3249],{"type":40,"tag":254,"props":3233,"children":3234},{"style":276},[3235],{"type":45,"value":873},{"type":40,"tag":254,"props":3237,"children":3238},{"style":276},[3239],{"type":45,"value":1899},{"type":40,"tag":254,"props":3241,"children":3242},{"style":276},[3243],{"type":45,"value":898},{"type":40,"tag":254,"props":3245,"children":3246},{"style":276},[3247],{"type":45,"value":3248}," my-static-site",{"type":40,"tag":254,"props":3250,"children":3251},{"style":862},[3252],{"type":45,"value":865},{"type":40,"tag":254,"props":3254,"children":3255},{"class":256,"line":287},[3256,3260,3264],{"type":40,"tag":254,"props":3257,"children":3258},{"style":276},[3259],{"type":45,"value":927},{"type":40,"tag":254,"props":3261,"children":3262},{"style":276},[3263],{"type":45,"value":932},{"type":40,"tag":254,"props":3265,"children":3266},{"style":862},[3267],{"type":45,"value":865},{"type":40,"tag":254,"props":3269,"children":3270},{"class":256,"line":297},[3271,3275,3280,3285,3290,3295],{"type":40,"tag":254,"props":3272,"children":3273},{"style":276},[3274],{"type":45,"value":1637},{"type":40,"tag":254,"props":3276,"children":3277},{"style":276},[3278],{"type":45,"value":3279}," static",{"type":40,"tag":254,"props":3281,"children":3282},{"style":276},[3283],{"type":45,"value":3284}," --static-dir",{"type":40,"tag":254,"props":3286,"children":3287},{"style":276},[3288],{"type":45,"value":3289}," dist",{"type":40,"tag":254,"props":3291,"children":3292},{"style":276},[3293],{"type":45,"value":3294}," --single-page-app",{"type":40,"tag":254,"props":3296,"children":3297},{"style":862},[3298],{"type":45,"value":865},{"type":40,"tag":254,"props":3300,"children":3301},{"class":256,"line":306},[3302,3307,3311,3316,3320],{"type":40,"tag":254,"props":3303,"children":3304},{"style":276},[3305],{"type":45,"value":3306},"  --build-command",{"type":40,"tag":254,"props":3308,"children":3309},{"style":434},[3310],{"type":45,"value":447},{"type":40,"tag":254,"props":3312,"children":3313},{"style":276},[3314],{"type":45,"value":3315},"deno task build",{"type":40,"tag":254,"props":3317,"children":3318},{"style":434},[3319],{"type":45,"value":457},{"type":40,"tag":254,"props":3321,"children":3322},{"style":862},[3323],{"type":45,"value":865},{"type":40,"tag":254,"props":3325,"children":3326},{"class":256,"line":327},[3327,3331,3335,3339,3343,3347],{"type":40,"tag":254,"props":3328,"children":3329},{"style":276},[3330],{"type":45,"value":964},{"type":40,"tag":254,"props":3332,"children":3333},{"style":568},[3334],{"type":45,"value":969},{"type":40,"tag":254,"props":3336,"children":3337},{"style":276},[3338],{"type":45,"value":974},{"type":40,"tag":254,"props":3340,"children":3341},{"style":568},[3342],{"type":45,"value":979},{"type":40,"tag":254,"props":3344,"children":3345},{"style":276},[3346],{"type":45,"value":984},{"type":40,"tag":254,"props":3348,"children":3349},{"style":276},[3350],{"type":45,"value":1706},{"type":40,"tag":54,"props":3352,"children":3354},{"id":3353},"environment-variables",[3355],{"type":45,"value":3356},"Environment Variables",{"type":40,"tag":397,"props":3358,"children":3360},{"id":3359},"contexts",[3361],{"type":45,"value":3362},"Contexts",{"type":40,"tag":48,"props":3364,"children":3365},{},[3366],{"type":45,"value":3367},"Deno Deploy has three \"contexts\" - logical environments where your code runs,\neach with its own set of variables:",{"type":40,"tag":2068,"props":3369,"children":3370},{},[3371,3386],{"type":40,"tag":2072,"props":3372,"children":3373},{},[3374],{"type":40,"tag":2076,"props":3375,"children":3376},{},[3377,3382],{"type":40,"tag":2080,"props":3378,"children":3379},{},[3380],{"type":45,"value":3381},"Context",{"type":40,"tag":2080,"props":3383,"children":3384},{},[3385],{"type":45,"value":2089},{"type":40,"tag":2091,"props":3387,"children":3388},{},[3389,3405,3421],{"type":40,"tag":2076,"props":3390,"children":3391},{},[3392,3400],{"type":40,"tag":2098,"props":3393,"children":3394},{},[3395],{"type":40,"tag":66,"props":3396,"children":3397},{},[3398],{"type":45,"value":3399},"Production",{"type":40,"tag":2098,"props":3401,"children":3402},{},[3403],{"type":45,"value":3404},"Live traffic on your production URL",{"type":40,"tag":2076,"props":3406,"children":3407},{},[3408,3416],{"type":40,"tag":2098,"props":3409,"children":3410},{},[3411],{"type":40,"tag":66,"props":3412,"children":3413},{},[3414],{"type":45,"value":3415},"Development",{"type":40,"tag":2098,"props":3417,"children":3418},{},[3419],{"type":45,"value":3420},"Preview deployments and branch URLs",{"type":40,"tag":2076,"props":3422,"children":3423},{},[3424,3432],{"type":40,"tag":2098,"props":3425,"children":3426},{},[3427],{"type":40,"tag":66,"props":3428,"children":3429},{},[3430],{"type":45,"value":3431},"Build",{"type":40,"tag":2098,"props":3433,"children":3434},{},[3435],{"type":45,"value":3436},"Only available during the build process",{"type":40,"tag":48,"props":3438,"children":3439},{},[3440],{"type":45,"value":3441},"You can set different values for the same variable in each context. For example,\nyou might use a test database URL in Development and the real one in Production.",{"type":40,"tag":397,"props":3443,"children":3445},{"id":3444},"predefined-variables",[3446],{"type":45,"value":3447},"Predefined Variables",{"type":40,"tag":48,"props":3449,"children":3450},{},[3451],{"type":45,"value":3452},"These are automatically available in your code:",{"type":40,"tag":2068,"props":3454,"children":3455},{},[3456,3471],{"type":40,"tag":2072,"props":3457,"children":3458},{},[3459],{"type":40,"tag":2076,"props":3460,"children":3461},{},[3462,3467],{"type":40,"tag":2080,"props":3463,"children":3464},{},[3465],{"type":45,"value":3466},"Variable",{"type":40,"tag":2080,"props":3468,"children":3469},{},[3470],{"type":45,"value":2177},{"type":40,"tag":2091,"props":3472,"children":3473},{},[3474,3499,3516,3533,3550],{"type":40,"tag":2076,"props":3475,"children":3476},{},[3477,3486],{"type":40,"tag":2098,"props":3478,"children":3479},{},[3480],{"type":40,"tag":102,"props":3481,"children":3483},{"className":3482},[],[3484],{"type":45,"value":3485},"DENO_DEPLOY",{"type":40,"tag":2098,"props":3487,"children":3488},{},[3489,3491,3497],{"type":45,"value":3490},"Always ",{"type":40,"tag":102,"props":3492,"children":3494},{"className":3493},[],[3495],{"type":45,"value":3496},"1",{"type":45,"value":3498}," when running on Deno Deploy",{"type":40,"tag":2076,"props":3500,"children":3501},{},[3502,3511],{"type":40,"tag":2098,"props":3503,"children":3504},{},[3505],{"type":40,"tag":102,"props":3506,"children":3508},{"className":3507},[],[3509],{"type":45,"value":3510},"DENO_DEPLOYMENT_ID",{"type":40,"tag":2098,"props":3512,"children":3513},{},[3514],{"type":45,"value":3515},"Unique ID for the current deployment",{"type":40,"tag":2076,"props":3517,"children":3518},{},[3519,3528],{"type":40,"tag":2098,"props":3520,"children":3521},{},[3522],{"type":40,"tag":102,"props":3523,"children":3525},{"className":3524},[],[3526],{"type":45,"value":3527},"DENO_DEPLOY_ORG_ID",{"type":40,"tag":2098,"props":3529,"children":3530},{},[3531],{"type":45,"value":3532},"Your organization's ID",{"type":40,"tag":2076,"props":3534,"children":3535},{},[3536,3545],{"type":40,"tag":2098,"props":3537,"children":3538},{},[3539],{"type":40,"tag":102,"props":3540,"children":3542},{"className":3541},[],[3543],{"type":45,"value":3544},"DENO_DEPLOY_APP_ID",{"type":40,"tag":2098,"props":3546,"children":3547},{},[3548],{"type":45,"value":3549},"Your application's ID",{"type":40,"tag":2076,"props":3551,"children":3552},{},[3553,3562],{"type":40,"tag":2098,"props":3554,"children":3555},{},[3556],{"type":40,"tag":102,"props":3557,"children":3559},{"className":3558},[],[3560],{"type":45,"value":3561},"CI",{"type":40,"tag":2098,"props":3563,"children":3564},{},[3565,3567,3572],{"type":45,"value":3566},"Set to ",{"type":40,"tag":102,"props":3568,"children":3570},{"className":3569},[],[3571],{"type":45,"value":3496},{"type":45,"value":3573}," during builds only",{"type":40,"tag":397,"props":3575,"children":3577},{"id":3576},"accessing-variables-in-code",[3578],{"type":45,"value":3579},"Accessing Variables in Code",{"type":40,"tag":243,"props":3581,"children":3585},{"className":3582,"code":3583,"language":3584,"meta":248,"style":248},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const dbUrl = Deno.env.get(\"DATABASE_URL\");\nconst isDenoDeploy = Deno.env.get(\"DENO_DEPLOY\") === \"1\";\n","typescript",[3586],{"type":40,"tag":102,"props":3587,"children":3588},{"__ignoreMap":248},[3589,3657],{"type":40,"tag":254,"props":3590,"children":3591},{"class":256,"line":257},[3592,3597,3602,3607,3612,3616,3621,3625,3630,3635,3639,3644,3648,3652],{"type":40,"tag":254,"props":3593,"children":3594},{"style":1308},[3595],{"type":45,"value":3596},"const",{"type":40,"tag":254,"props":3598,"children":3599},{"style":862},[3600],{"type":45,"value":3601}," dbUrl ",{"type":40,"tag":254,"props":3603,"children":3604},{"style":434},[3605],{"type":45,"value":3606},"=",{"type":40,"tag":254,"props":3608,"children":3609},{"style":862},[3610],{"type":45,"value":3611}," Deno",{"type":40,"tag":254,"props":3613,"children":3614},{"style":434},[3615],{"type":45,"value":170},{"type":40,"tag":254,"props":3617,"children":3618},{"style":862},[3619],{"type":45,"value":3620},"env",{"type":40,"tag":254,"props":3622,"children":3623},{"style":434},[3624],{"type":45,"value":170},{"type":40,"tag":254,"props":3626,"children":3627},{"style":504},[3628],{"type":45,"value":3629},"get",{"type":40,"tag":254,"props":3631,"children":3632},{"style":862},[3633],{"type":45,"value":3634},"(",{"type":40,"tag":254,"props":3636,"children":3637},{"style":434},[3638],{"type":45,"value":457},{"type":40,"tag":254,"props":3640,"children":3641},{"style":276},[3642],{"type":45,"value":3643},"DATABASE_URL",{"type":40,"tag":254,"props":3645,"children":3646},{"style":434},[3647],{"type":45,"value":457},{"type":40,"tag":254,"props":3649,"children":3650},{"style":862},[3651],{"type":45,"value":2222},{"type":40,"tag":254,"props":3653,"children":3654},{"style":434},[3655],{"type":45,"value":3656},";\n",{"type":40,"tag":254,"props":3658,"children":3659},{"class":256,"line":267},[3660,3664,3669,3673,3677,3681,3685,3689,3693,3697,3701,3705,3709,3714,3719,3723,3727,3731],{"type":40,"tag":254,"props":3661,"children":3662},{"style":1308},[3663],{"type":45,"value":3596},{"type":40,"tag":254,"props":3665,"children":3666},{"style":862},[3667],{"type":45,"value":3668}," isDenoDeploy ",{"type":40,"tag":254,"props":3670,"children":3671},{"style":434},[3672],{"type":45,"value":3606},{"type":40,"tag":254,"props":3674,"children":3675},{"style":862},[3676],{"type":45,"value":3611},{"type":40,"tag":254,"props":3678,"children":3679},{"style":434},[3680],{"type":45,"value":170},{"type":40,"tag":254,"props":3682,"children":3683},{"style":862},[3684],{"type":45,"value":3620},{"type":40,"tag":254,"props":3686,"children":3687},{"style":434},[3688],{"type":45,"value":170},{"type":40,"tag":254,"props":3690,"children":3691},{"style":504},[3692],{"type":45,"value":3629},{"type":40,"tag":254,"props":3694,"children":3695},{"style":862},[3696],{"type":45,"value":3634},{"type":40,"tag":254,"props":3698,"children":3699},{"style":434},[3700],{"type":45,"value":457},{"type":40,"tag":254,"props":3702,"children":3703},{"style":276},[3704],{"type":45,"value":3485},{"type":40,"tag":254,"props":3706,"children":3707},{"style":434},[3708],{"type":45,"value":457},{"type":40,"tag":254,"props":3710,"children":3711},{"style":862},[3712],{"type":45,"value":3713},") ",{"type":40,"tag":254,"props":3715,"children":3716},{"style":434},[3717],{"type":45,"value":3718},"===",{"type":40,"tag":254,"props":3720,"children":3721},{"style":434},[3722],{"type":45,"value":447},{"type":40,"tag":254,"props":3724,"children":3725},{"style":276},[3726],{"type":45,"value":3496},{"type":40,"tag":254,"props":3728,"children":3729},{"style":434},[3730],{"type":45,"value":457},{"type":40,"tag":254,"props":3732,"children":3733},{"style":434},[3734],{"type":45,"value":3656},{"type":40,"tag":397,"props":3736,"children":3738},{"id":3737},"managing-variables-via-cli",[3739],{"type":45,"value":3740},"Managing Variables via CLI",{"type":40,"tag":243,"props":3742,"children":3744},{"className":245,"code":3743,"language":247,"meta":248,"style":248},"# Add a plain text variable\ndeno deploy env add DATABASE_URL \"postgres:\u002F\u002F...\"\n\n# Add a secret variable (hidden after creation, only readable in code)\ndeno deploy env add API_KEY \"sk-...\" --secret\n\n# List all variables\ndeno deploy env list\n\n# Update just the value (keeps contexts and secret status)\ndeno deploy env update-value DATABASE_URL \"postgres:\u002F\u002Fnew-url...\"\n\n# Update which contexts a variable applies to\ndeno deploy env update-contexts DATABASE_URL production development\n\n# Delete a variable\ndeno deploy env delete DATABASE_URL\n\n# Load from .env file (all values treated as secrets by default)\ndeno deploy env load .env.production\n\n# Load from .env file, marking specific keys as non-secrets\ndeno deploy env load .env.production --non-secrets PUBLIC_URL APP_NAME\n",[3745],{"type":40,"tag":102,"props":3746,"children":3747},{"__ignoreMap":248},[3748,3756,3794,3801,3809,3851,3858,3866,3886,3893,3902,3940,3948,3957,3992,4000,4009,4035,4043,4052,4078,4086,4095],{"type":40,"tag":254,"props":3749,"children":3750},{"class":256,"line":257},[3751],{"type":40,"tag":254,"props":3752,"children":3753},{"style":261},[3754],{"type":45,"value":3755},"# Add a plain text variable\n",{"type":40,"tag":254,"props":3757,"children":3758},{"class":256,"line":267},[3759,3763,3767,3771,3776,3781,3785,3790],{"type":40,"tag":254,"props":3760,"children":3761},{"style":271},[3762],{"type":45,"value":8},{"type":40,"tag":254,"props":3764,"children":3765},{"style":276},[3766],{"type":45,"value":279},{"type":40,"tag":254,"props":3768,"children":3769},{"style":276},[3770],{"type":45,"value":341},{"type":40,"tag":254,"props":3772,"children":3773},{"style":276},[3774],{"type":45,"value":3775}," add",{"type":40,"tag":254,"props":3777,"children":3778},{"style":276},[3779],{"type":45,"value":3780}," DATABASE_URL",{"type":40,"tag":254,"props":3782,"children":3783},{"style":434},[3784],{"type":45,"value":447},{"type":40,"tag":254,"props":3786,"children":3787},{"style":276},[3788],{"type":45,"value":3789},"postgres:\u002F\u002F...",{"type":40,"tag":254,"props":3791,"children":3792},{"style":434},[3793],{"type":45,"value":782},{"type":40,"tag":254,"props":3795,"children":3796},{"class":256,"line":287},[3797],{"type":40,"tag":254,"props":3798,"children":3799},{"emptyLinePlaceholder":291},[3800],{"type":45,"value":294},{"type":40,"tag":254,"props":3802,"children":3803},{"class":256,"line":297},[3804],{"type":40,"tag":254,"props":3805,"children":3806},{"style":261},[3807],{"type":45,"value":3808},"# Add a secret variable (hidden after creation, only readable in code)\n",{"type":40,"tag":254,"props":3810,"children":3811},{"class":256,"line":306},[3812,3816,3820,3824,3828,3833,3837,3842,3846],{"type":40,"tag":254,"props":3813,"children":3814},{"style":271},[3815],{"type":45,"value":8},{"type":40,"tag":254,"props":3817,"children":3818},{"style":276},[3819],{"type":45,"value":279},{"type":40,"tag":254,"props":3821,"children":3822},{"style":276},[3823],{"type":45,"value":341},{"type":40,"tag":254,"props":3825,"children":3826},{"style":276},[3827],{"type":45,"value":3775},{"type":40,"tag":254,"props":3829,"children":3830},{"style":276},[3831],{"type":45,"value":3832}," API_KEY",{"type":40,"tag":254,"props":3834,"children":3835},{"style":434},[3836],{"type":45,"value":447},{"type":40,"tag":254,"props":3838,"children":3839},{"style":276},[3840],{"type":45,"value":3841},"sk-...",{"type":40,"tag":254,"props":3843,"children":3844},{"style":434},[3845],{"type":45,"value":457},{"type":40,"tag":254,"props":3847,"children":3848},{"style":276},[3849],{"type":45,"value":3850}," --secret\n",{"type":40,"tag":254,"props":3852,"children":3853},{"class":256,"line":327},[3854],{"type":40,"tag":254,"props":3855,"children":3856},{"emptyLinePlaceholder":291},[3857],{"type":45,"value":294},{"type":40,"tag":254,"props":3859,"children":3860},{"class":256,"line":348},[3861],{"type":40,"tag":254,"props":3862,"children":3863},{"style":261},[3864],{"type":45,"value":3865},"# List all variables\n",{"type":40,"tag":254,"props":3867,"children":3868},{"class":256,"line":25},[3869,3873,3877,3881],{"type":40,"tag":254,"props":3870,"children":3871},{"style":271},[3872],{"type":45,"value":8},{"type":40,"tag":254,"props":3874,"children":3875},{"style":276},[3876],{"type":45,"value":279},{"type":40,"tag":254,"props":3878,"children":3879},{"style":276},[3880],{"type":45,"value":341},{"type":40,"tag":254,"props":3882,"children":3883},{"style":276},[3884],{"type":45,"value":3885}," list\n",{"type":40,"tag":254,"props":3887,"children":3888},{"class":256,"line":1695},[3889],{"type":40,"tag":254,"props":3890,"children":3891},{"emptyLinePlaceholder":291},[3892],{"type":45,"value":294},{"type":40,"tag":254,"props":3894,"children":3896},{"class":256,"line":3895},10,[3897],{"type":40,"tag":254,"props":3898,"children":3899},{"style":261},[3900],{"type":45,"value":3901},"# Update just the value (keeps contexts and secret status)\n",{"type":40,"tag":254,"props":3903,"children":3905},{"class":256,"line":3904},11,[3906,3910,3914,3918,3923,3927,3931,3936],{"type":40,"tag":254,"props":3907,"children":3908},{"style":271},[3909],{"type":45,"value":8},{"type":40,"tag":254,"props":3911,"children":3912},{"style":276},[3913],{"type":45,"value":279},{"type":40,"tag":254,"props":3915,"children":3916},{"style":276},[3917],{"type":45,"value":341},{"type":40,"tag":254,"props":3919,"children":3920},{"style":276},[3921],{"type":45,"value":3922}," update-value",{"type":40,"tag":254,"props":3924,"children":3925},{"style":276},[3926],{"type":45,"value":3780},{"type":40,"tag":254,"props":3928,"children":3929},{"style":434},[3930],{"type":45,"value":447},{"type":40,"tag":254,"props":3932,"children":3933},{"style":276},[3934],{"type":45,"value":3935},"postgres:\u002F\u002Fnew-url...",{"type":40,"tag":254,"props":3937,"children":3938},{"style":434},[3939],{"type":45,"value":782},{"type":40,"tag":254,"props":3941,"children":3943},{"class":256,"line":3942},12,[3944],{"type":40,"tag":254,"props":3945,"children":3946},{"emptyLinePlaceholder":291},[3947],{"type":45,"value":294},{"type":40,"tag":254,"props":3949,"children":3951},{"class":256,"line":3950},13,[3952],{"type":40,"tag":254,"props":3953,"children":3954},{"style":261},[3955],{"type":45,"value":3956},"# Update which contexts a variable applies to\n",{"type":40,"tag":254,"props":3958,"children":3960},{"class":256,"line":3959},14,[3961,3965,3969,3973,3978,3982,3987],{"type":40,"tag":254,"props":3962,"children":3963},{"style":271},[3964],{"type":45,"value":8},{"type":40,"tag":254,"props":3966,"children":3967},{"style":276},[3968],{"type":45,"value":279},{"type":40,"tag":254,"props":3970,"children":3971},{"style":276},[3972],{"type":45,"value":341},{"type":40,"tag":254,"props":3974,"children":3975},{"style":276},[3976],{"type":45,"value":3977}," update-contexts",{"type":40,"tag":254,"props":3979,"children":3980},{"style":276},[3981],{"type":45,"value":3780},{"type":40,"tag":254,"props":3983,"children":3984},{"style":276},[3985],{"type":45,"value":3986}," production",{"type":40,"tag":254,"props":3988,"children":3989},{"style":276},[3990],{"type":45,"value":3991}," development\n",{"type":40,"tag":254,"props":3993,"children":3995},{"class":256,"line":3994},15,[3996],{"type":40,"tag":254,"props":3997,"children":3998},{"emptyLinePlaceholder":291},[3999],{"type":45,"value":294},{"type":40,"tag":254,"props":4001,"children":4003},{"class":256,"line":4002},16,[4004],{"type":40,"tag":254,"props":4005,"children":4006},{"style":261},[4007],{"type":45,"value":4008},"# Delete a variable\n",{"type":40,"tag":254,"props":4010,"children":4012},{"class":256,"line":4011},17,[4013,4017,4021,4025,4030],{"type":40,"tag":254,"props":4014,"children":4015},{"style":271},[4016],{"type":45,"value":8},{"type":40,"tag":254,"props":4018,"children":4019},{"style":276},[4020],{"type":45,"value":279},{"type":40,"tag":254,"props":4022,"children":4023},{"style":276},[4024],{"type":45,"value":341},{"type":40,"tag":254,"props":4026,"children":4027},{"style":276},[4028],{"type":45,"value":4029}," delete",{"type":40,"tag":254,"props":4031,"children":4032},{"style":276},[4033],{"type":45,"value":4034}," DATABASE_URL\n",{"type":40,"tag":254,"props":4036,"children":4038},{"class":256,"line":4037},18,[4039],{"type":40,"tag":254,"props":4040,"children":4041},{"emptyLinePlaceholder":291},[4042],{"type":45,"value":294},{"type":40,"tag":254,"props":4044,"children":4046},{"class":256,"line":4045},19,[4047],{"type":40,"tag":254,"props":4048,"children":4049},{"style":261},[4050],{"type":45,"value":4051},"# Load from .env file (all values treated as secrets by default)\n",{"type":40,"tag":254,"props":4053,"children":4055},{"class":256,"line":4054},20,[4056,4060,4064,4068,4073],{"type":40,"tag":254,"props":4057,"children":4058},{"style":271},[4059],{"type":45,"value":8},{"type":40,"tag":254,"props":4061,"children":4062},{"style":276},[4063],{"type":45,"value":279},{"type":40,"tag":254,"props":4065,"children":4066},{"style":276},[4067],{"type":45,"value":341},{"type":40,"tag":254,"props":4069,"children":4070},{"style":276},[4071],{"type":45,"value":4072}," load",{"type":40,"tag":254,"props":4074,"children":4075},{"style":276},[4076],{"type":45,"value":4077}," .env.production\n",{"type":40,"tag":254,"props":4079,"children":4081},{"class":256,"line":4080},21,[4082],{"type":40,"tag":254,"props":4083,"children":4084},{"emptyLinePlaceholder":291},[4085],{"type":45,"value":294},{"type":40,"tag":254,"props":4087,"children":4089},{"class":256,"line":4088},22,[4090],{"type":40,"tag":254,"props":4091,"children":4092},{"style":261},[4093],{"type":45,"value":4094},"# Load from .env file, marking specific keys as non-secrets\n",{"type":40,"tag":254,"props":4096,"children":4098},{"class":256,"line":4097},23,[4099,4103,4107,4111,4115,4120,4125,4130],{"type":40,"tag":254,"props":4100,"children":4101},{"style":271},[4102],{"type":45,"value":8},{"type":40,"tag":254,"props":4104,"children":4105},{"style":276},[4106],{"type":45,"value":279},{"type":40,"tag":254,"props":4108,"children":4109},{"style":276},[4110],{"type":45,"value":341},{"type":40,"tag":254,"props":4112,"children":4113},{"style":276},[4114],{"type":45,"value":4072},{"type":40,"tag":254,"props":4116,"children":4117},{"style":276},[4118],{"type":45,"value":4119}," .env.production",{"type":40,"tag":254,"props":4121,"children":4122},{"style":276},[4123],{"type":45,"value":4124}," --non-secrets",{"type":40,"tag":254,"props":4126,"children":4127},{"style":276},[4128],{"type":45,"value":4129}," PUBLIC_URL",{"type":40,"tag":254,"props":4131,"children":4132},{"style":276},[4133],{"type":45,"value":4134}," APP_NAME\n",{"type":40,"tag":397,"props":4136,"children":4138},{"id":4137},"variable-types",[4139],{"type":45,"value":4140},"Variable Types",{"type":40,"tag":74,"props":4142,"children":4143},{},[4144,4154],{"type":40,"tag":78,"props":4145,"children":4146},{},[4147,4152],{"type":40,"tag":66,"props":4148,"children":4149},{},[4150],{"type":45,"value":4151},"Plain text",{"type":45,"value":4153}," - Visible in the dashboard, good for feature flags and\nnon-sensitive config",{"type":40,"tag":78,"props":4155,"children":4156},{},[4157,4162],{"type":40,"tag":66,"props":4158,"children":4159},{},[4160],{"type":45,"value":4161},"Secrets",{"type":45,"value":4163}," - Hidden after creation, only readable in your code, use for API\nkeys and credentials",{"type":40,"tag":397,"props":4165,"children":4167},{"id":4166},"limits",[4168],{"type":45,"value":4169},"Limits",{"type":40,"tag":74,"props":4171,"children":4172},{},[4173,4178,4183],{"type":40,"tag":78,"props":4174,"children":4175},{},[4176],{"type":45,"value":4177},"Key names: max 128 bytes",{"type":40,"tag":78,"props":4179,"children":4180},{},[4181],{"type":45,"value":4182},"Values: max 16 KB",{"type":40,"tag":78,"props":4184,"children":4185},{},[4186,4188,4194,4195,4201,4203],{"type":45,"value":4187},"Keys cannot start with ",{"type":40,"tag":102,"props":4189,"children":4191},{"className":4190},[],[4192],{"type":45,"value":4193},"DENO_",{"type":45,"value":2511},{"type":40,"tag":102,"props":4196,"children":4198},{"className":4197},[],[4199],{"type":45,"value":4200},"LD_",{"type":45,"value":4202},", or ",{"type":40,"tag":102,"props":4204,"children":4206},{"className":4205},[],[4207],{"type":45,"value":4208},"OTEL_",{"type":40,"tag":54,"props":4210,"children":4212},{"id":4211},"viewing-logs",[4213],{"type":45,"value":4214},"Viewing Logs",{"type":40,"tag":243,"props":4216,"children":4218},{"className":245,"code":4217,"language":247,"meta":248,"style":248},"# Stream live logs\ndeno deploy logs\n\n# Filter by date range\ndeno deploy logs --start 2026-01-15 --end 2026-01-16\n",[4219],{"type":40,"tag":102,"props":4220,"children":4221},{"__ignoreMap":248},[4222,4230,4246,4253,4261],{"type":40,"tag":254,"props":4223,"children":4224},{"class":256,"line":257},[4225],{"type":40,"tag":254,"props":4226,"children":4227},{"style":261},[4228],{"type":45,"value":4229},"# Stream live logs\n",{"type":40,"tag":254,"props":4231,"children":4232},{"class":256,"line":267},[4233,4237,4241],{"type":40,"tag":254,"props":4234,"children":4235},{"style":271},[4236],{"type":45,"value":8},{"type":40,"tag":254,"props":4238,"children":4239},{"style":276},[4240],{"type":45,"value":279},{"type":40,"tag":254,"props":4242,"children":4243},{"style":276},[4244],{"type":45,"value":4245}," logs\n",{"type":40,"tag":254,"props":4247,"children":4248},{"class":256,"line":287},[4249],{"type":40,"tag":254,"props":4250,"children":4251},{"emptyLinePlaceholder":291},[4252],{"type":45,"value":294},{"type":40,"tag":254,"props":4254,"children":4255},{"class":256,"line":297},[4256],{"type":40,"tag":254,"props":4257,"children":4258},{"style":261},[4259],{"type":45,"value":4260},"# Filter by date range\n",{"type":40,"tag":254,"props":4262,"children":4263},{"class":256,"line":306},[4264,4268,4272,4277,4282,4287,4292],{"type":40,"tag":254,"props":4265,"children":4266},{"style":271},[4267],{"type":45,"value":8},{"type":40,"tag":254,"props":4269,"children":4270},{"style":276},[4271],{"type":45,"value":279},{"type":40,"tag":254,"props":4273,"children":4274},{"style":276},[4275],{"type":45,"value":4276}," logs",{"type":40,"tag":254,"props":4278,"children":4279},{"style":276},[4280],{"type":45,"value":4281}," --start",{"type":40,"tag":254,"props":4283,"children":4284},{"style":276},[4285],{"type":45,"value":4286}," 2026-01-15",{"type":40,"tag":254,"props":4288,"children":4289},{"style":276},[4290],{"type":45,"value":4291}," --end",{"type":40,"tag":254,"props":4293,"children":4294},{"style":276},[4295],{"type":45,"value":4296}," 2026-01-16\n",{"type":40,"tag":54,"props":4298,"children":4300},{"id":4299},"databases-storage",[4301],{"type":45,"value":4302},"Databases & Storage",{"type":40,"tag":48,"props":4304,"children":4305},{},[4306,4308,4313],{"type":45,"value":4307},"Deno Deploy provides built-in database support with ",{"type":40,"tag":66,"props":4309,"children":4310},{},[4311],{"type":45,"value":4312},"automatic environment\nisolation",{"type":45,"value":4314},". Each environment (production, preview, branch) gets its own\nisolated database automatically.",{"type":40,"tag":397,"props":4316,"children":4318},{"id":4317},"available-options",[4319],{"type":45,"value":4320},"Available Options",{"type":40,"tag":2068,"props":4322,"children":4323},{},[4324,4340],{"type":40,"tag":2072,"props":4325,"children":4326},{},[4327],{"type":40,"tag":2076,"props":4328,"children":4329},{},[4330,4335],{"type":40,"tag":2080,"props":4331,"children":4332},{},[4333],{"type":45,"value":4334},"Engine",{"type":40,"tag":2080,"props":4336,"children":4337},{},[4338],{"type":45,"value":4339},"Use Case",{"type":40,"tag":2091,"props":4341,"children":4342},{},[4343,4359],{"type":40,"tag":2076,"props":4344,"children":4345},{},[4346,4354],{"type":40,"tag":2098,"props":4347,"children":4348},{},[4349],{"type":40,"tag":66,"props":4350,"children":4351},{},[4352],{"type":45,"value":4353},"Deno KV",{"type":40,"tag":2098,"props":4355,"children":4356},{},[4357],{"type":45,"value":4358},"Key-value storage, simple data, counters, sessions",{"type":40,"tag":2076,"props":4360,"children":4361},{},[4362,4370],{"type":40,"tag":2098,"props":4363,"children":4364},{},[4365],{"type":40,"tag":66,"props":4366,"children":4367},{},[4368],{"type":45,"value":4369},"PostgreSQL",{"type":40,"tag":2098,"props":4371,"children":4372},{},[4373],{"type":45,"value":4374},"Relational data, complex queries, existing Postgres apps",{"type":40,"tag":397,"props":4376,"children":4378},{"id":4377},"deno-kv-quick-start",[4379],{"type":45,"value":4380},"Deno KV Quick Start",{"type":40,"tag":48,"props":4382,"children":4383},{},[4384],{"type":45,"value":4385},"No configuration needed - just use the built-in API:",{"type":40,"tag":243,"props":4387,"children":4389},{"className":3582,"code":4388,"language":3584,"meta":248,"style":248},"const kv = await Deno.openKv();\n\n\u002F\u002F Store data\nawait kv.set([\"users\", \"alice\"], { name: \"Alice\", role: \"admin\" });\n\n\u002F\u002F Retrieve data\nconst user = await kv.get([\"users\", \"alice\"]);\nconsole.log(user.value); \u002F\u002F { name: \"Alice\", role: \"admin\" }\n\n\u002F\u002F List by prefix\nfor await (const entry of kv.list({ prefix: [\"users\"] })) {\n  console.log(entry.key, entry.value);\n}\n",[4390],{"type":40,"tag":102,"props":4391,"children":4392},{"__ignoreMap":248},[4393,4436,4443,4451,4585,4592,4600,4673,4714,4721,4729,4826,4886],{"type":40,"tag":254,"props":4394,"children":4395},{"class":256,"line":257},[4396,4400,4405,4409,4414,4418,4422,4427,4432],{"type":40,"tag":254,"props":4397,"children":4398},{"style":1308},[4399],{"type":45,"value":3596},{"type":40,"tag":254,"props":4401,"children":4402},{"style":862},[4403],{"type":45,"value":4404}," kv ",{"type":40,"tag":254,"props":4406,"children":4407},{"style":434},[4408],{"type":45,"value":3606},{"type":40,"tag":254,"props":4410,"children":4411},{"style":428},[4412],{"type":45,"value":4413}," await",{"type":40,"tag":254,"props":4415,"children":4416},{"style":862},[4417],{"type":45,"value":3611},{"type":40,"tag":254,"props":4419,"children":4420},{"style":434},[4421],{"type":45,"value":170},{"type":40,"tag":254,"props":4423,"children":4424},{"style":504},[4425],{"type":45,"value":4426},"openKv",{"type":40,"tag":254,"props":4428,"children":4429},{"style":862},[4430],{"type":45,"value":4431},"()",{"type":40,"tag":254,"props":4433,"children":4434},{"style":434},[4435],{"type":45,"value":3656},{"type":40,"tag":254,"props":4437,"children":4438},{"class":256,"line":267},[4439],{"type":40,"tag":254,"props":4440,"children":4441},{"emptyLinePlaceholder":291},[4442],{"type":45,"value":294},{"type":40,"tag":254,"props":4444,"children":4445},{"class":256,"line":287},[4446],{"type":40,"tag":254,"props":4447,"children":4448},{"style":261},[4449],{"type":45,"value":4450},"\u002F\u002F Store data\n",{"type":40,"tag":254,"props":4452,"children":4453},{"class":256,"line":297},[4454,4459,4464,4468,4473,4478,4482,4487,4491,4496,4500,4505,4509,4514,4518,4523,4529,4533,4537,4542,4546,4550,4555,4559,4563,4568,4572,4577,4581],{"type":40,"tag":254,"props":4455,"children":4456},{"style":428},[4457],{"type":45,"value":4458},"await",{"type":40,"tag":254,"props":4460,"children":4461},{"style":862},[4462],{"type":45,"value":4463}," kv",{"type":40,"tag":254,"props":4465,"children":4466},{"style":434},[4467],{"type":45,"value":170},{"type":40,"tag":254,"props":4469,"children":4470},{"style":504},[4471],{"type":45,"value":4472},"set",{"type":40,"tag":254,"props":4474,"children":4475},{"style":862},[4476],{"type":45,"value":4477},"([",{"type":40,"tag":254,"props":4479,"children":4480},{"style":434},[4481],{"type":45,"value":457},{"type":40,"tag":254,"props":4483,"children":4484},{"style":276},[4485],{"type":45,"value":4486},"users",{"type":40,"tag":254,"props":4488,"children":4489},{"style":434},[4490],{"type":45,"value":457},{"type":40,"tag":254,"props":4492,"children":4493},{"style":434},[4494],{"type":45,"value":4495},",",{"type":40,"tag":254,"props":4497,"children":4498},{"style":434},[4499],{"type":45,"value":447},{"type":40,"tag":254,"props":4501,"children":4502},{"style":276},[4503],{"type":45,"value":4504},"alice",{"type":40,"tag":254,"props":4506,"children":4507},{"style":434},[4508],{"type":45,"value":457},{"type":40,"tag":254,"props":4510,"children":4511},{"style":862},[4512],{"type":45,"value":4513},"]",{"type":40,"tag":254,"props":4515,"children":4516},{"style":434},[4517],{"type":45,"value":4495},{"type":40,"tag":254,"props":4519,"children":4520},{"style":434},[4521],{"type":45,"value":4522}," {",{"type":40,"tag":254,"props":4524,"children":4526},{"style":4525},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[4527],{"type":45,"value":4528}," name",{"type":40,"tag":254,"props":4530,"children":4531},{"style":434},[4532],{"type":45,"value":1320},{"type":40,"tag":254,"props":4534,"children":4535},{"style":434},[4536],{"type":45,"value":447},{"type":40,"tag":254,"props":4538,"children":4539},{"style":276},[4540],{"type":45,"value":4541},"Alice",{"type":40,"tag":254,"props":4543,"children":4544},{"style":434},[4545],{"type":45,"value":457},{"type":40,"tag":254,"props":4547,"children":4548},{"style":434},[4549],{"type":45,"value":4495},{"type":40,"tag":254,"props":4551,"children":4552},{"style":4525},[4553],{"type":45,"value":4554}," role",{"type":40,"tag":254,"props":4556,"children":4557},{"style":434},[4558],{"type":45,"value":1320},{"type":40,"tag":254,"props":4560,"children":4561},{"style":434},[4562],{"type":45,"value":447},{"type":40,"tag":254,"props":4564,"children":4565},{"style":276},[4566],{"type":45,"value":4567},"admin",{"type":40,"tag":254,"props":4569,"children":4570},{"style":434},[4571],{"type":45,"value":457},{"type":40,"tag":254,"props":4573,"children":4574},{"style":434},[4575],{"type":45,"value":4576}," }",{"type":40,"tag":254,"props":4578,"children":4579},{"style":862},[4580],{"type":45,"value":2222},{"type":40,"tag":254,"props":4582,"children":4583},{"style":434},[4584],{"type":45,"value":3656},{"type":40,"tag":254,"props":4586,"children":4587},{"class":256,"line":306},[4588],{"type":40,"tag":254,"props":4589,"children":4590},{"emptyLinePlaceholder":291},[4591],{"type":45,"value":294},{"type":40,"tag":254,"props":4593,"children":4594},{"class":256,"line":327},[4595],{"type":40,"tag":254,"props":4596,"children":4597},{"style":261},[4598],{"type":45,"value":4599},"\u002F\u002F Retrieve data\n",{"type":40,"tag":254,"props":4601,"children":4602},{"class":256,"line":348},[4603,4607,4612,4616,4620,4624,4628,4632,4636,4640,4644,4648,4652,4656,4660,4664,4669],{"type":40,"tag":254,"props":4604,"children":4605},{"style":1308},[4606],{"type":45,"value":3596},{"type":40,"tag":254,"props":4608,"children":4609},{"style":862},[4610],{"type":45,"value":4611}," user ",{"type":40,"tag":254,"props":4613,"children":4614},{"style":434},[4615],{"type":45,"value":3606},{"type":40,"tag":254,"props":4617,"children":4618},{"style":428},[4619],{"type":45,"value":4413},{"type":40,"tag":254,"props":4621,"children":4622},{"style":862},[4623],{"type":45,"value":4463},{"type":40,"tag":254,"props":4625,"children":4626},{"style":434},[4627],{"type":45,"value":170},{"type":40,"tag":254,"props":4629,"children":4630},{"style":504},[4631],{"type":45,"value":3629},{"type":40,"tag":254,"props":4633,"children":4634},{"style":862},[4635],{"type":45,"value":4477},{"type":40,"tag":254,"props":4637,"children":4638},{"style":434},[4639],{"type":45,"value":457},{"type":40,"tag":254,"props":4641,"children":4642},{"style":276},[4643],{"type":45,"value":4486},{"type":40,"tag":254,"props":4645,"children":4646},{"style":434},[4647],{"type":45,"value":457},{"type":40,"tag":254,"props":4649,"children":4650},{"style":434},[4651],{"type":45,"value":4495},{"type":40,"tag":254,"props":4653,"children":4654},{"style":434},[4655],{"type":45,"value":447},{"type":40,"tag":254,"props":4657,"children":4658},{"style":276},[4659],{"type":45,"value":4504},{"type":40,"tag":254,"props":4661,"children":4662},{"style":434},[4663],{"type":45,"value":457},{"type":40,"tag":254,"props":4665,"children":4666},{"style":862},[4667],{"type":45,"value":4668},"])",{"type":40,"tag":254,"props":4670,"children":4671},{"style":434},[4672],{"type":45,"value":3656},{"type":40,"tag":254,"props":4674,"children":4675},{"class":256,"line":25},[4676,4681,4685,4690,4695,4699,4704,4709],{"type":40,"tag":254,"props":4677,"children":4678},{"style":862},[4679],{"type":45,"value":4680},"console",{"type":40,"tag":254,"props":4682,"children":4683},{"style":434},[4684],{"type":45,"value":170},{"type":40,"tag":254,"props":4686,"children":4687},{"style":504},[4688],{"type":45,"value":4689},"log",{"type":40,"tag":254,"props":4691,"children":4692},{"style":862},[4693],{"type":45,"value":4694},"(user",{"type":40,"tag":254,"props":4696,"children":4697},{"style":434},[4698],{"type":45,"value":170},{"type":40,"tag":254,"props":4700,"children":4701},{"style":862},[4702],{"type":45,"value":4703},"value)",{"type":40,"tag":254,"props":4705,"children":4706},{"style":434},[4707],{"type":45,"value":4708},";",{"type":40,"tag":254,"props":4710,"children":4711},{"style":261},[4712],{"type":45,"value":4713}," \u002F\u002F { name: \"Alice\", role: \"admin\" }\n",{"type":40,"tag":254,"props":4715,"children":4716},{"class":256,"line":1695},[4717],{"type":40,"tag":254,"props":4718,"children":4719},{"emptyLinePlaceholder":291},[4720],{"type":45,"value":294},{"type":40,"tag":254,"props":4722,"children":4723},{"class":256,"line":3895},[4724],{"type":40,"tag":254,"props":4725,"children":4726},{"style":261},[4727],{"type":45,"value":4728},"\u002F\u002F List by prefix\n",{"type":40,"tag":254,"props":4730,"children":4731},{"class":256,"line":3904},[4732,4737,4741,4746,4750,4755,4760,4764,4768,4773,4777,4782,4787,4791,4795,4799,4803,4807,4812,4817,4822],{"type":40,"tag":254,"props":4733,"children":4734},{"style":428},[4735],{"type":45,"value":4736},"for",{"type":40,"tag":254,"props":4738,"children":4739},{"style":428},[4740],{"type":45,"value":4413},{"type":40,"tag":254,"props":4742,"children":4743},{"style":862},[4744],{"type":45,"value":4745}," (",{"type":40,"tag":254,"props":4747,"children":4748},{"style":1308},[4749],{"type":45,"value":3596},{"type":40,"tag":254,"props":4751,"children":4752},{"style":862},[4753],{"type":45,"value":4754}," entry ",{"type":40,"tag":254,"props":4756,"children":4757},{"style":434},[4758],{"type":45,"value":4759},"of",{"type":40,"tag":254,"props":4761,"children":4762},{"style":862},[4763],{"type":45,"value":4463},{"type":40,"tag":254,"props":4765,"children":4766},{"style":434},[4767],{"type":45,"value":170},{"type":40,"tag":254,"props":4769,"children":4770},{"style":504},[4771],{"type":45,"value":4772},"list",{"type":40,"tag":254,"props":4774,"children":4775},{"style":862},[4776],{"type":45,"value":3634},{"type":40,"tag":254,"props":4778,"children":4779},{"style":434},[4780],{"type":45,"value":4781},"{",{"type":40,"tag":254,"props":4783,"children":4784},{"style":4525},[4785],{"type":45,"value":4786}," prefix",{"type":40,"tag":254,"props":4788,"children":4789},{"style":434},[4790],{"type":45,"value":1320},{"type":40,"tag":254,"props":4792,"children":4793},{"style":862},[4794],{"type":45,"value":437},{"type":40,"tag":254,"props":4796,"children":4797},{"style":434},[4798],{"type":45,"value":457},{"type":40,"tag":254,"props":4800,"children":4801},{"style":276},[4802],{"type":45,"value":4486},{"type":40,"tag":254,"props":4804,"children":4805},{"style":434},[4806],{"type":45,"value":457},{"type":40,"tag":254,"props":4808,"children":4809},{"style":862},[4810],{"type":45,"value":4811},"] ",{"type":40,"tag":254,"props":4813,"children":4814},{"style":434},[4815],{"type":45,"value":4816},"}",{"type":40,"tag":254,"props":4818,"children":4819},{"style":862},[4820],{"type":45,"value":4821},")) ",{"type":40,"tag":254,"props":4823,"children":4824},{"style":434},[4825],{"type":45,"value":1297},{"type":40,"tag":254,"props":4827,"children":4828},{"class":256,"line":3942},[4829,4834,4838,4842,4846,4851,4855,4860,4864,4869,4873,4878,4882],{"type":40,"tag":254,"props":4830,"children":4831},{"style":862},[4832],{"type":45,"value":4833},"  console",{"type":40,"tag":254,"props":4835,"children":4836},{"style":434},[4837],{"type":45,"value":170},{"type":40,"tag":254,"props":4839,"children":4840},{"style":504},[4841],{"type":45,"value":4689},{"type":40,"tag":254,"props":4843,"children":4844},{"style":4525},[4845],{"type":45,"value":3634},{"type":40,"tag":254,"props":4847,"children":4848},{"style":862},[4849],{"type":45,"value":4850},"entry",{"type":40,"tag":254,"props":4852,"children":4853},{"style":434},[4854],{"type":45,"value":170},{"type":40,"tag":254,"props":4856,"children":4857},{"style":862},[4858],{"type":45,"value":4859},"key",{"type":40,"tag":254,"props":4861,"children":4862},{"style":434},[4863],{"type":45,"value":4495},{"type":40,"tag":254,"props":4865,"children":4866},{"style":862},[4867],{"type":45,"value":4868}," entry",{"type":40,"tag":254,"props":4870,"children":4871},{"style":434},[4872],{"type":45,"value":170},{"type":40,"tag":254,"props":4874,"children":4875},{"style":862},[4876],{"type":45,"value":4877},"value",{"type":40,"tag":254,"props":4879,"children":4880},{"style":4525},[4881],{"type":45,"value":2222},{"type":40,"tag":254,"props":4883,"children":4884},{"style":434},[4885],{"type":45,"value":3656},{"type":40,"tag":254,"props":4887,"children":4888},{"class":256,"line":3950},[4889],{"type":40,"tag":254,"props":4890,"children":4891},{"style":434},[4892],{"type":45,"value":1413},{"type":40,"tag":48,"props":4894,"children":4895},{},[4896],{"type":45,"value":4897},"Deno Deploy automatically connects to the correct database based on your\nenvironment.",{"type":40,"tag":397,"props":4899,"children":4901},{"id":4900},"postgresql",[4902],{"type":45,"value":4369},{"type":40,"tag":48,"props":4904,"children":4905},{},[4906,4908,4913,4914,4920],{"type":45,"value":4907},"For PostgreSQL, Deno Deploy injects environment variables (",{"type":40,"tag":102,"props":4909,"children":4911},{"className":4910},[],[4912],{"type":45,"value":3643},{"type":45,"value":1364},{"type":40,"tag":102,"props":4915,"children":4917},{"className":4916},[],[4918],{"type":45,"value":4919},"PGHOST",{"type":45,"value":4921},", etc.) that most libraries detect automatically:",{"type":40,"tag":243,"props":4923,"children":4925},{"className":3582,"code":4924,"language":3584,"meta":248,"style":248},"\u002F\u002F Recommended: npm:pg (best PostgreSQL driver for Deno Deploy)\nimport pg from \"npm:pg\";\nconst pool = new pg.Pool(); \u002F\u002F Reads DATABASE_URL from environment automatically\n",[4926],{"type":40,"tag":102,"props":4927,"children":4928},{"__ignoreMap":248},[4929,4937,4972],{"type":40,"tag":254,"props":4930,"children":4931},{"class":256,"line":257},[4932],{"type":40,"tag":254,"props":4933,"children":4934},{"style":261},[4935],{"type":45,"value":4936},"\u002F\u002F Recommended: npm:pg (best PostgreSQL driver for Deno Deploy)\n",{"type":40,"tag":254,"props":4938,"children":4939},{"class":256,"line":267},[4940,4945,4950,4955,4959,4964,4968],{"type":40,"tag":254,"props":4941,"children":4942},{"style":428},[4943],{"type":45,"value":4944},"import",{"type":40,"tag":254,"props":4946,"children":4947},{"style":862},[4948],{"type":45,"value":4949}," pg ",{"type":40,"tag":254,"props":4951,"children":4952},{"style":428},[4953],{"type":45,"value":4954},"from",{"type":40,"tag":254,"props":4956,"children":4957},{"style":434},[4958],{"type":45,"value":447},{"type":40,"tag":254,"props":4960,"children":4961},{"style":276},[4962],{"type":45,"value":4963},"npm:pg",{"type":40,"tag":254,"props":4965,"children":4966},{"style":434},[4967],{"type":45,"value":457},{"type":40,"tag":254,"props":4969,"children":4970},{"style":434},[4971],{"type":45,"value":3656},{"type":40,"tag":254,"props":4973,"children":4974},{"class":256,"line":287},[4975,4979,4984,4988,4993,4998,5002,5007,5011,5015],{"type":40,"tag":254,"props":4976,"children":4977},{"style":1308},[4978],{"type":45,"value":3596},{"type":40,"tag":254,"props":4980,"children":4981},{"style":862},[4982],{"type":45,"value":4983}," pool ",{"type":40,"tag":254,"props":4985,"children":4986},{"style":434},[4987],{"type":45,"value":3606},{"type":40,"tag":254,"props":4989,"children":4990},{"style":434},[4991],{"type":45,"value":4992}," new",{"type":40,"tag":254,"props":4994,"children":4995},{"style":862},[4996],{"type":45,"value":4997}," pg",{"type":40,"tag":254,"props":4999,"children":5000},{"style":434},[5001],{"type":45,"value":170},{"type":40,"tag":254,"props":5003,"children":5004},{"style":504},[5005],{"type":45,"value":5006},"Pool",{"type":40,"tag":254,"props":5008,"children":5009},{"style":862},[5010],{"type":45,"value":4431},{"type":40,"tag":254,"props":5012,"children":5013},{"style":434},[5014],{"type":45,"value":4708},{"type":40,"tag":254,"props":5016,"children":5017},{"style":261},[5018],{"type":45,"value":5019}," \u002F\u002F Reads DATABASE_URL from environment automatically\n",{"type":40,"tag":397,"props":5021,"children":5023},{"id":5022},"provisioning",[5024],{"type":45,"value":5025},"Provisioning",{"type":40,"tag":48,"props":5027,"children":5028},{},[5029,5031,5037],{"type":45,"value":5030},"Use the ",{"type":40,"tag":102,"props":5032,"children":5034},{"className":5033},[],[5035],{"type":45,"value":5036},"deno deploy database",{"type":45,"value":5038}," command to provision and manage databases:",{"type":40,"tag":243,"props":5040,"children":5042},{"className":245,"code":5041,"language":247,"meta":248,"style":248},"# Provision a Deno KV database\ndeno deploy database provision my-database --kind denokv\n\n# Provision a Prisma PostgreSQL database\ndeno deploy database provision my-database --kind prisma --region us-east-1\n\n# Assign to your app\ndeno deploy database assign my-database --app my-app\n",[5043],{"type":40,"tag":102,"props":5044,"children":5045},{"__ignoreMap":248},[5046,5054,5087,5094,5102,5141,5148,5156],{"type":40,"tag":254,"props":5047,"children":5048},{"class":256,"line":257},[5049],{"type":40,"tag":254,"props":5050,"children":5051},{"style":261},[5052],{"type":45,"value":5053},"# Provision a Deno KV database\n",{"type":40,"tag":254,"props":5055,"children":5056},{"class":256,"line":267},[5057,5061,5065,5069,5073,5078,5082],{"type":40,"tag":254,"props":5058,"children":5059},{"style":271},[5060],{"type":45,"value":8},{"type":40,"tag":254,"props":5062,"children":5063},{"style":276},[5064],{"type":45,"value":279},{"type":40,"tag":254,"props":5066,"children":5067},{"style":276},[5068],{"type":45,"value":362},{"type":40,"tag":254,"props":5070,"children":5071},{"style":276},[5072],{"type":45,"value":1036},{"type":40,"tag":254,"props":5074,"children":5075},{"style":276},[5076],{"type":45,"value":5077}," my-database",{"type":40,"tag":254,"props":5079,"children":5080},{"style":276},[5081],{"type":45,"value":1046},{"type":40,"tag":254,"props":5083,"children":5084},{"style":276},[5085],{"type":45,"value":5086}," denokv\n",{"type":40,"tag":254,"props":5088,"children":5089},{"class":256,"line":287},[5090],{"type":40,"tag":254,"props":5091,"children":5092},{"emptyLinePlaceholder":291},[5093],{"type":45,"value":294},{"type":40,"tag":254,"props":5095,"children":5096},{"class":256,"line":297},[5097],{"type":40,"tag":254,"props":5098,"children":5099},{"style":261},[5100],{"type":45,"value":5101},"# Provision a Prisma PostgreSQL database\n",{"type":40,"tag":254,"props":5103,"children":5104},{"class":256,"line":306},[5105,5109,5113,5117,5121,5125,5129,5133,5137],{"type":40,"tag":254,"props":5106,"children":5107},{"style":271},[5108],{"type":45,"value":8},{"type":40,"tag":254,"props":5110,"children":5111},{"style":276},[5112],{"type":45,"value":279},{"type":40,"tag":254,"props":5114,"children":5115},{"style":276},[5116],{"type":45,"value":362},{"type":40,"tag":254,"props":5118,"children":5119},{"style":276},[5120],{"type":45,"value":1036},{"type":40,"tag":254,"props":5122,"children":5123},{"style":276},[5124],{"type":45,"value":5077},{"type":40,"tag":254,"props":5126,"children":5127},{"style":276},[5128],{"type":45,"value":1046},{"type":40,"tag":254,"props":5130,"children":5131},{"style":276},[5132],{"type":45,"value":1051},{"type":40,"tag":254,"props":5134,"children":5135},{"style":276},[5136],{"type":45,"value":984},{"type":40,"tag":254,"props":5138,"children":5139},{"style":276},[5140],{"type":45,"value":1060},{"type":40,"tag":254,"props":5142,"children":5143},{"class":256,"line":327},[5144],{"type":40,"tag":254,"props":5145,"children":5146},{"emptyLinePlaceholder":291},[5147],{"type":45,"value":294},{"type":40,"tag":254,"props":5149,"children":5150},{"class":256,"line":348},[5151],{"type":40,"tag":254,"props":5152,"children":5153},{"style":261},[5154],{"type":45,"value":5155},"# Assign to your app\n",{"type":40,"tag":254,"props":5157,"children":5158},{"class":256,"line":25},[5159,5163,5167,5171,5175,5179,5183],{"type":40,"tag":254,"props":5160,"children":5161},{"style":271},[5162],{"type":45,"value":8},{"type":40,"tag":254,"props":5164,"children":5165},{"style":276},[5166],{"type":45,"value":279},{"type":40,"tag":254,"props":5168,"children":5169},{"style":276},[5170],{"type":45,"value":362},{"type":40,"tag":254,"props":5172,"children":5173},{"style":276},[5174],{"type":45,"value":1080},{"type":40,"tag":254,"props":5176,"children":5177},{"style":276},[5178],{"type":45,"value":5077},{"type":40,"tag":254,"props":5180,"children":5181},{"style":276},[5182],{"type":45,"value":898},{"type":40,"tag":254,"props":5184,"children":5185},{"style":276},[5186],{"type":45,"value":5187}," my-app\n",{"type":40,"tag":48,"props":5189,"children":5190},{},[5191,5193,5199],{"type":45,"value":5192},"For detailed CLI commands, see ",{"type":40,"tag":1447,"props":5194,"children":5196},{"href":5195},"references\u002FDATABASES.md",[5197],{"type":45,"value":5198},"Databases",{"type":45,"value":170},{"type":40,"tag":397,"props":5201,"children":5203},{"id":5202},"local-development",[5204],{"type":45,"value":5205},"Local Development",{"type":40,"tag":48,"props":5207,"children":5208},{},[5209,5211,5216],{"type":45,"value":5210},"Use ",{"type":40,"tag":102,"props":5212,"children":5214},{"className":5213},[],[5215],{"type":45,"value":107},{"type":45,"value":5217}," to connect to your hosted development database locally:",{"type":40,"tag":243,"props":5219,"children":5221},{"className":245,"code":5220,"language":247,"meta":248,"style":248},"deno task --tunnel dev\n",[5222],{"type":40,"tag":102,"props":5223,"children":5224},{"__ignoreMap":248},[5225],{"type":40,"tag":254,"props":5226,"children":5227},{"class":256,"line":257},[5228,5232,5236,5241],{"type":40,"tag":254,"props":5229,"children":5230},{"style":271},[5231],{"type":45,"value":8},{"type":40,"tag":254,"props":5233,"children":5234},{"style":276},[5235],{"type":45,"value":1200},{"type":40,"tag":254,"props":5237,"children":5238},{"style":276},[5239],{"type":45,"value":5240}," --tunnel",{"type":40,"tag":254,"props":5242,"children":5243},{"style":276},[5244],{"type":45,"value":5245}," dev\n",{"type":40,"tag":48,"props":5247,"children":5248},{},[5249,5251,5255,5256,5261],{"type":45,"value":5250},"See ",{"type":40,"tag":1447,"props":5252,"children":5253},{"href":5195},[5254],{"type":45,"value":5198},{"type":45,"value":1725},{"type":40,"tag":1447,"props":5257,"children":5259},{"href":5258},"references\u002FDENO_KV.md",[5260],{"type":45,"value":4353},{"type":45,"value":5262},"\nfor detailed documentation.",{"type":40,"tag":54,"props":5264,"children":5266},{"id":5265},"local-development-tunnel",[5267],{"type":45,"value":5268},"Local Development Tunnel",{"type":40,"tag":48,"props":5270,"children":5271},{},[5272],{"type":45,"value":5273},"The tunnel feature lets you expose your local development server to the\ninternet. This is useful for:",{"type":40,"tag":74,"props":5275,"children":5276},{},[5277,5287,5297],{"type":40,"tag":78,"props":5278,"children":5279},{},[5280,5285],{"type":40,"tag":66,"props":5281,"children":5282},{},[5283],{"type":45,"value":5284},"Testing webhooks",{"type":45,"value":5286}," - Receive webhook callbacks from external services",{"type":40,"tag":78,"props":5288,"children":5289},{},[5290,5295],{"type":40,"tag":66,"props":5291,"children":5292},{},[5293],{"type":45,"value":5294},"Sharing with teammates",{"type":45,"value":5296}," - Let others preview your local work",{"type":40,"tag":78,"props":5298,"children":5299},{},[5300,5305],{"type":40,"tag":66,"props":5301,"children":5302},{},[5303],{"type":45,"value":5304},"Mobile testing",{"type":45,"value":5306}," - Access your local server from other devices",{"type":40,"tag":397,"props":5308,"children":5310},{"id":5309},"basic-usage",[5311],{"type":45,"value":5312},"Basic Usage",{"type":40,"tag":48,"props":5314,"children":5315},{},[5316,5318,5323],{"type":45,"value":5317},"Add the ",{"type":40,"tag":102,"props":5319,"children":5321},{"className":5320},[],[5322],{"type":45,"value":107},{"type":45,"value":5324}," flag when running your app:",{"type":40,"tag":243,"props":5326,"children":5328},{"className":245,"code":5327,"language":247,"meta":248,"style":248},"deno run --tunnel -A main.ts\n",[5329],{"type":40,"tag":102,"props":5330,"children":5331},{"__ignoreMap":248},[5332],{"type":40,"tag":254,"props":5333,"children":5334},{"class":256,"line":257},[5335,5339,5344,5348,5353],{"type":40,"tag":254,"props":5336,"children":5337},{"style":271},[5338],{"type":45,"value":8},{"type":40,"tag":254,"props":5340,"children":5341},{"style":276},[5342],{"type":45,"value":5343}," run",{"type":40,"tag":254,"props":5345,"children":5346},{"style":276},[5347],{"type":45,"value":5240},{"type":40,"tag":254,"props":5349,"children":5350},{"style":276},[5351],{"type":45,"value":5352}," -A",{"type":40,"tag":254,"props":5354,"children":5355},{"style":276},[5356],{"type":45,"value":5357}," main.ts\n",{"type":40,"tag":48,"props":5359,"children":5360},{},[5361],{"type":45,"value":5362},"The first time you run this, it will:",{"type":40,"tag":819,"props":5364,"children":5365},{},[5366,5371,5376],{"type":40,"tag":78,"props":5367,"children":5368},{},[5369],{"type":45,"value":5370},"Ask you to authenticate with Deno Deploy (opens a browser)",{"type":40,"tag":78,"props":5372,"children":5373},{},[5374],{"type":45,"value":5375},"Ask you to select which app to connect the tunnel to",{"type":40,"tag":78,"props":5377,"children":5378},{},[5379],{"type":45,"value":5380},"Generate a public URL that forwards requests to your local server",{"type":40,"tag":397,"props":5382,"children":5384},{"id":5383},"using-with-tasks",[5385],{"type":45,"value":5386},"Using with Tasks",{"type":40,"tag":48,"props":5388,"children":5389},{},[5390,5392,5397,5399,5404],{"type":45,"value":5391},"You can use ",{"type":40,"tag":102,"props":5393,"children":5395},{"className":5394},[],[5396],{"type":45,"value":107},{"type":45,"value":5398}," with your existing tasks in ",{"type":40,"tag":102,"props":5400,"children":5402},{"className":5401},[],[5403],{"type":45,"value":452},{"type":45,"value":1320},{"type":40,"tag":243,"props":5406,"children":5407},{"className":245,"code":5220,"language":247,"meta":248,"style":248},[5408],{"type":40,"tag":102,"props":5409,"children":5410},{"__ignoreMap":248},[5411],{"type":40,"tag":254,"props":5412,"children":5413},{"class":256,"line":257},[5414,5418,5422,5426],{"type":40,"tag":254,"props":5415,"children":5416},{"style":271},[5417],{"type":45,"value":8},{"type":40,"tag":254,"props":5419,"children":5420},{"style":276},[5421],{"type":45,"value":1200},{"type":40,"tag":254,"props":5423,"children":5424},{"style":276},[5425],{"type":45,"value":5240},{"type":40,"tag":254,"props":5427,"children":5428},{"style":276},[5429],{"type":45,"value":5245},{"type":40,"tag":48,"props":5431,"children":5432},{},[5433,5435,5441],{"type":45,"value":5434},"This runs your ",{"type":40,"tag":102,"props":5436,"children":5438},{"className":5437},[],[5439],{"type":45,"value":5440},"dev",{"type":45,"value":5442}," task with the tunnel enabled.",{"type":40,"tag":397,"props":5444,"children":5446},{"id":5445},"what-the-tunnel-provides",[5447],{"type":45,"value":5448},"What the Tunnel Provides",{"type":40,"tag":48,"props":5450,"children":5451},{},[5452],{"type":45,"value":5453},"Beyond just forwarding requests, the tunnel also:",{"type":40,"tag":74,"props":5455,"children":5456},{},[5457,5467,5484],{"type":40,"tag":78,"props":5458,"children":5459},{},[5460,5465],{"type":40,"tag":66,"props":5461,"children":5462},{},[5463],{"type":45,"value":5464},"Syncs environment variables",{"type":45,"value":5466}," - Variables set in your Deno Deploy app's\n\"Local\" context become available to your local process",{"type":40,"tag":78,"props":5468,"children":5469},{},[5470,5475,5477,5483],{"type":40,"tag":66,"props":5471,"children":5472},{},[5473],{"type":45,"value":5474},"Sends logs and metrics",{"type":45,"value":5476}," - OpenTelemetry data goes to the Deno Deploy\ndashboard (filter with ",{"type":40,"tag":102,"props":5478,"children":5480},{"className":5479},[],[5481],{"type":45,"value":5482},"context:local",{"type":45,"value":2222},{"type":40,"tag":78,"props":5485,"children":5486},{},[5487,5492],{"type":40,"tag":66,"props":5488,"children":5489},{},[5490],{"type":45,"value":5491},"Connects to databases",{"type":45,"value":5493}," - Automatically connects to your assigned local\ndevelopment databases",{"type":40,"tag":397,"props":5495,"children":5497},{"id":5496},"managing-tunnels",[5498],{"type":45,"value":5499},"Managing Tunnels",{"type":40,"tag":74,"props":5501,"children":5502},{},[5503,5508],{"type":40,"tag":78,"props":5504,"children":5505},{},[5506],{"type":45,"value":5507},"View active tunnels in the Deno Deploy dashboard under the \"Tunnels\" tab",{"type":40,"tag":78,"props":5509,"children":5510},{},[5511],{"type":45,"value":5512},"Stop a tunnel by terminating the Deno process (Ctrl+C)",{"type":40,"tag":54,"props":5514,"children":5516},{"id":5515},"command-reference",[5517],{"type":45,"value":5518},"Command Reference",{"type":40,"tag":2068,"props":5520,"children":5521},{},[5522,5537],{"type":40,"tag":2072,"props":5523,"children":5524},{},[5525],{"type":40,"tag":2076,"props":5526,"children":5527},{},[5528,5533],{"type":40,"tag":2080,"props":5529,"children":5530},{},[5531],{"type":45,"value":5532},"Command",{"type":40,"tag":2080,"props":5534,"children":5535},{},[5536],{"type":45,"value":2089},{"type":40,"tag":2091,"props":5538,"children":5539},{},[5540,5556,5572,5589,5606,5623,5640,5657,5674,5691,5708,5725,5742,5759,5776,5793,5810,5827,5844],{"type":40,"tag":2076,"props":5541,"children":5542},{},[5543,5551],{"type":40,"tag":2098,"props":5544,"children":5545},{},[5546],{"type":40,"tag":102,"props":5547,"children":5549},{"className":5548},[],[5550],{"type":45,"value":393},{"type":40,"tag":2098,"props":5552,"children":5553},{},[5554],{"type":45,"value":5555},"Deploy to production (app must exist first)",{"type":40,"tag":2076,"props":5557,"children":5558},{},[5559,5567],{"type":40,"tag":2098,"props":5560,"children":5561},{},[5562],{"type":40,"tag":102,"props":5563,"children":5565},{"className":5564},[],[5566],{"type":45,"value":120},{"type":40,"tag":2098,"props":5568,"children":5569},{},[5570],{"type":45,"value":5571},"Preview deployment",{"type":40,"tag":2076,"props":5573,"children":5574},{},[5575,5584],{"type":40,"tag":2098,"props":5576,"children":5577},{},[5578],{"type":40,"tag":102,"props":5579,"children":5581},{"className":5580},[],[5582],{"type":45,"value":5583},"deno deploy create --org \u003Cname>",{"type":40,"tag":2098,"props":5585,"children":5586},{},[5587],{"type":45,"value":5588},"Create new app (interactive)",{"type":40,"tag":2076,"props":5590,"children":5591},{},[5592,5601],{"type":40,"tag":2098,"props":5593,"children":5594},{},[5595],{"type":40,"tag":102,"props":5596,"children":5598},{"className":5597},[],[5599],{"type":45,"value":5600},"deno deploy create --org \u003Cname> --app \u003Cname> ...",{"type":40,"tag":2098,"props":5602,"children":5603},{},[5604],{"type":45,"value":5605},"Create new app (non-interactive, see full flags above)",{"type":40,"tag":2076,"props":5607,"children":5608},{},[5609,5618],{"type":40,"tag":2098,"props":5610,"children":5611},{},[5612],{"type":40,"tag":102,"props":5613,"children":5615},{"className":5614},[],[5616],{"type":45,"value":5617},"deno deploy create ... --no-wait",{"type":40,"tag":2098,"props":5619,"children":5620},{},[5621],{"type":45,"value":5622},"Create app without waiting for build to complete",{"type":40,"tag":2076,"props":5624,"children":5625},{},[5626,5635],{"type":40,"tag":2098,"props":5627,"children":5628},{},[5629],{"type":40,"tag":102,"props":5630,"children":5632},{"className":5631},[],[5633],{"type":45,"value":5634},"deno deploy create ... --allow-node-modules",{"type":40,"tag":2098,"props":5636,"children":5637},{},[5638],{"type":45,"value":5639},"Create app including node_modules",{"type":40,"tag":2076,"props":5641,"children":5642},{},[5643,5652],{"type":40,"tag":2098,"props":5644,"children":5645},{},[5646],{"type":40,"tag":102,"props":5647,"children":5649},{"className":5648},[],[5650],{"type":45,"value":5651},"deno deploy env add \u003Cvar> \u003Cvalue>",{"type":40,"tag":2098,"props":5653,"children":5654},{},[5655],{"type":45,"value":5656},"Add plain text environment variable",{"type":40,"tag":2076,"props":5658,"children":5659},{},[5660,5669],{"type":40,"tag":2098,"props":5661,"children":5662},{},[5663],{"type":40,"tag":102,"props":5664,"children":5666},{"className":5665},[],[5667],{"type":45,"value":5668},"deno deploy env add \u003Cvar> \u003Cvalue> --secret",{"type":40,"tag":2098,"props":5670,"children":5671},{},[5672],{"type":45,"value":5673},"Add secret environment variable",{"type":40,"tag":2076,"props":5675,"children":5676},{},[5677,5686],{"type":40,"tag":2098,"props":5678,"children":5679},{},[5680],{"type":40,"tag":102,"props":5681,"children":5683},{"className":5682},[],[5684],{"type":45,"value":5685},"deno deploy env list",{"type":40,"tag":2098,"props":5687,"children":5688},{},[5689],{"type":45,"value":5690},"List environment variables",{"type":40,"tag":2076,"props":5692,"children":5693},{},[5694,5703],{"type":40,"tag":2098,"props":5695,"children":5696},{},[5697],{"type":40,"tag":102,"props":5698,"children":5700},{"className":5699},[],[5701],{"type":45,"value":5702},"deno deploy env update-value \u003Cvar> \u003Cvalue>",{"type":40,"tag":2098,"props":5704,"children":5705},{},[5706],{"type":45,"value":5707},"Update variable value (keeps contexts\u002Fsecret status)",{"type":40,"tag":2076,"props":5709,"children":5710},{},[5711,5720],{"type":40,"tag":2098,"props":5712,"children":5713},{},[5714],{"type":40,"tag":102,"props":5715,"children":5717},{"className":5716},[],[5718],{"type":45,"value":5719},"deno deploy env update-contexts \u003Cvar> \u003Ccontexts...>",{"type":40,"tag":2098,"props":5721,"children":5722},{},[5723],{"type":45,"value":5724},"Update which contexts a variable applies to",{"type":40,"tag":2076,"props":5726,"children":5727},{},[5728,5737],{"type":40,"tag":2098,"props":5729,"children":5730},{},[5731],{"type":40,"tag":102,"props":5732,"children":5734},{"className":5733},[],[5735],{"type":45,"value":5736},"deno deploy env delete \u003Cvar>",{"type":40,"tag":2098,"props":5738,"children":5739},{},[5740],{"type":45,"value":5741},"Delete environment variable",{"type":40,"tag":2076,"props":5743,"children":5744},{},[5745,5754],{"type":40,"tag":2098,"props":5746,"children":5747},{},[5748],{"type":40,"tag":102,"props":5749,"children":5751},{"className":5750},[],[5752],{"type":45,"value":5753},"deno deploy env load \u003Cfile>",{"type":40,"tag":2098,"props":5755,"children":5756},{},[5757],{"type":45,"value":5758},"Load variables from .env file (defaults to secret)",{"type":40,"tag":2076,"props":5760,"children":5761},{},[5762,5771],{"type":40,"tag":2098,"props":5763,"children":5764},{},[5765],{"type":40,"tag":102,"props":5766,"children":5768},{"className":5767},[],[5769],{"type":45,"value":5770},"deno deploy env load \u003Cfile> --non-secrets \u003Ckeys...>",{"type":40,"tag":2098,"props":5772,"children":5773},{},[5774],{"type":45,"value":5775},"Load .env file, marking specific keys as non-secrets",{"type":40,"tag":2076,"props":5777,"children":5778},{},[5779,5788],{"type":40,"tag":2098,"props":5780,"children":5781},{},[5782],{"type":40,"tag":102,"props":5783,"children":5785},{"className":5784},[],[5786],{"type":45,"value":5787},"deno deploy database provision \u003Cname> --kind \u003Ctype>",{"type":40,"tag":2098,"props":5789,"children":5790},{},[5791],{"type":45,"value":5792},"Provision a new database",{"type":40,"tag":2076,"props":5794,"children":5795},{},[5796,5805],{"type":40,"tag":2098,"props":5797,"children":5798},{},[5799],{"type":40,"tag":102,"props":5800,"children":5802},{"className":5801},[],[5803],{"type":45,"value":5804},"deno deploy database assign \u003Cname> --app \u003Capp>",{"type":40,"tag":2098,"props":5806,"children":5807},{},[5808],{"type":45,"value":5809},"Assign database to an app",{"type":40,"tag":2076,"props":5811,"children":5812},{},[5813,5822],{"type":40,"tag":2098,"props":5814,"children":5815},{},[5816],{"type":40,"tag":102,"props":5817,"children":5819},{"className":5818},[],[5820],{"type":45,"value":5821},"deno deploy logs",{"type":40,"tag":2098,"props":5823,"children":5824},{},[5825],{"type":45,"value":5826},"View deployment logs",{"type":40,"tag":2076,"props":5828,"children":5829},{},[5830,5839],{"type":40,"tag":2098,"props":5831,"children":5832},{},[5833],{"type":40,"tag":102,"props":5834,"children":5836},{"className":5835},[],[5837],{"type":45,"value":5838},"deno run --tunnel -A \u003Cfile>",{"type":40,"tag":2098,"props":5840,"children":5841},{},[5842],{"type":45,"value":5843},"Start local tunnel",{"type":40,"tag":2076,"props":5845,"children":5846},{},[5847,5856],{"type":40,"tag":2098,"props":5848,"children":5849},{},[5850],{"type":40,"tag":102,"props":5851,"children":5853},{"className":5852},[],[5854],{"type":45,"value":5855},"deno task --tunnel \u003Ctask>",{"type":40,"tag":2098,"props":5857,"children":5858},{},[5859],{"type":45,"value":5860},"Run task with tunnel",{"type":40,"tag":54,"props":5862,"children":5864},{"id":5863},"edge-runtime-notes",[5865],{"type":45,"value":5866},"Edge Runtime Notes",{"type":40,"tag":48,"props":5868,"children":5869},{},[5870],{"type":45,"value":5871},"Deno Deploy runs in one or many regions (globally distributed). Keep in mind:",{"type":40,"tag":74,"props":5873,"children":5874},{},[5875,5893,5903],{"type":40,"tag":78,"props":5876,"children":5877},{},[5878,5883,5885,5891],{"type":40,"tag":66,"props":5879,"children":5880},{},[5881],{"type":45,"value":5882},"Environment variables",{"type":45,"value":5884}," - Must be set via ",{"type":40,"tag":102,"props":5886,"children":5888},{"className":5887},[],[5889],{"type":45,"value":5890},"deno deploy env",{"type":45,"value":5892},", not .env files\nat runtime",{"type":40,"tag":78,"props":5894,"children":5895},{},[5896,5901],{"type":40,"tag":66,"props":5897,"children":5898},{},[5899],{"type":45,"value":5900},"Global distribution",{"type":45,"value":5902}," - Code runs at the region closest to users",{"type":40,"tag":78,"props":5904,"children":5905},{},[5906,5911],{"type":40,"tag":66,"props":5907,"children":5908},{},[5909],{"type":45,"value":5910},"Cold starts",{"type":45,"value":5912}," - First request after idle may be slightly slower",{"type":40,"tag":54,"props":5914,"children":5916},{"id":5915},"additional-references",[5917],{"type":45,"value":5918},"Additional References",{"type":40,"tag":74,"props":5920,"children":5921},{},[5922,5933,5942,5951,5962,5971,5982,5993],{"type":40,"tag":78,"props":5923,"children":5924},{},[5925,5931],{"type":40,"tag":1447,"props":5926,"children":5928},{"href":5927},"references\u002FAUTHENTICATION.md",[5929],{"type":45,"value":5930},"Authentication",{"type":45,"value":5932}," - Interactive and CI\u002FCD\nauthentication",{"type":40,"tag":78,"props":5934,"children":5935},{},[5936,5940],{"type":40,"tag":1447,"props":5937,"children":5938},{"href":5195},[5939],{"type":45,"value":5198},{"type":45,"value":5941}," - Database provisioning and connections",{"type":40,"tag":78,"props":5943,"children":5944},{},[5945,5949],{"type":40,"tag":1447,"props":5946,"children":5947},{"href":5258},[5948],{"type":45,"value":4353},{"type":45,"value":5950}," - Key-value storage API and examples",{"type":40,"tag":78,"props":5952,"children":5953},{},[5954,5960],{"type":40,"tag":1447,"props":5955,"children":5957},{"href":5956},"references\u002FDOMAINS.md",[5958],{"type":45,"value":5959},"Domains",{"type":45,"value":5961}," - Custom domains and SSL certificates",{"type":40,"tag":78,"props":5963,"children":5964},{},[5965,5969],{"type":40,"tag":1447,"props":5966,"children":5967},{"href":2426},[5968],{"type":45,"value":2429},{"type":45,"value":5970}," - Framework-specific deployment guides",{"type":40,"tag":78,"props":5972,"children":5973},{},[5974,5980],{"type":40,"tag":1447,"props":5975,"children":5977},{"href":5976},"references\u002FORGANIZATIONS.md",[5978],{"type":45,"value":5979},"Organizations",{"type":45,"value":5981}," - Managing orgs and members",{"type":40,"tag":78,"props":5983,"children":5984},{},[5985,5991],{"type":40,"tag":1447,"props":5986,"children":5988},{"href":5987},"references\u002FRUNTIME.md",[5989],{"type":45,"value":5990},"Runtime",{"type":45,"value":5992}," - Lifecycle, cold starts, and limitations",{"type":40,"tag":78,"props":5994,"children":5995},{},[5996,6002],{"type":40,"tag":1447,"props":5997,"children":5999},{"href":5998},"references\u002FTROUBLESHOOTING.md",[6000],{"type":45,"value":6001},"Troubleshooting",{"type":45,"value":6003}," - Common issues and solutions",{"type":40,"tag":54,"props":6005,"children":6007},{"id":6006},"documentation",[6008],{"type":45,"value":6009},"Documentation",{"type":40,"tag":74,"props":6011,"children":6012},{},[6013,6024,6035,6046,6057,6068,6079,6090,6101],{"type":40,"tag":78,"props":6014,"children":6015},{},[6016,6018],{"type":45,"value":6017},"Official docs: ",{"type":40,"tag":1447,"props":6019,"children":6022},{"href":6020,"rel":6021},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002F",[1451],[6023],{"type":45,"value":6020},{"type":40,"tag":78,"props":6025,"children":6026},{},[6027,6029],{"type":45,"value":6028},"CLI reference: ",{"type":40,"tag":1447,"props":6030,"children":6033},{"href":6031,"rel":6032},"https:\u002F\u002Fdocs.deno.com\u002Fruntime\u002Freference\u002Fcli\u002Fdeploy\u002F",[1451],[6034],{"type":45,"value":6031},{"type":40,"tag":78,"props":6036,"children":6037},{},[6038,6040],{"type":45,"value":6039},"Databases: ",{"type":40,"tag":1447,"props":6041,"children":6044},{"href":6042,"rel":6043},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fdatabases\u002F",[1451],[6045],{"type":45,"value":6042},{"type":40,"tag":78,"props":6047,"children":6048},{},[6049,6051],{"type":45,"value":6050},"Deno KV: ",{"type":40,"tag":1447,"props":6052,"children":6055},{"href":6053,"rel":6054},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fdeno_kv\u002F",[1451],[6056],{"type":45,"value":6053},{"type":40,"tag":78,"props":6058,"children":6059},{},[6060,6062],{"type":45,"value":6061},"Domains: ",{"type":40,"tag":1447,"props":6063,"children":6066},{"href":6064,"rel":6065},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fdomains\u002F",[1451],[6067],{"type":45,"value":6064},{"type":40,"tag":78,"props":6069,"children":6070},{},[6071,6073],{"type":45,"value":6072},"Environment variables & contexts:\n",{"type":40,"tag":1447,"props":6074,"children":6077},{"href":6075,"rel":6076},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fenv_vars_and_contexts\u002F",[1451],[6078],{"type":45,"value":6075},{"type":40,"tag":78,"props":6080,"children":6081},{},[6082,6084],{"type":45,"value":6083},"Organizations: ",{"type":40,"tag":1447,"props":6085,"children":6088},{"href":6086,"rel":6087},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Forganizations\u002F",[1451],[6089],{"type":45,"value":6086},{"type":40,"tag":78,"props":6091,"children":6092},{},[6093,6095],{"type":45,"value":6094},"Runtime: ",{"type":40,"tag":1447,"props":6096,"children":6099},{"href":6097,"rel":6098},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Fruntime\u002F",[1451],[6100],{"type":45,"value":6097},{"type":40,"tag":78,"props":6102,"children":6103},{},[6104,6106],{"type":45,"value":6105},"Tunnel: ",{"type":40,"tag":1447,"props":6107,"children":6110},{"href":6108,"rel":6109},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Freference\u002Ftunnel\u002F",[1451],[6111],{"type":45,"value":6108},{"type":40,"tag":6113,"props":6114,"children":6115},"style",{},[6116],{"type":45,"value":6117},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":6119,"total":306},[6120,6135,6141,6161,6175],{"slug":8,"name":8,"fn":6121,"description":6122,"org":6123,"tags":6124,"stars":21,"repoUrl":22,"updatedAt":6134},"build and manage Deno applications","Use when writing, running, configuring, reviewing, or debugging code in a Deno project, or when scaffolding a new one. Covers dependency management with deno install and deno add, package.json and node_modules support, npm and JSR packages, permissions, where configuration belongs across package.json, tsconfig.json and deno.json, workspaces, the built-in toolchain (fmt, lint, test, check, bench, compile), and publishing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6125,6128,6129,6132],{"name":6126,"slug":6127,"type":14},"CLI","cli",{"name":9,"slug":8,"type":14},{"name":6130,"slug":6131,"type":14},"JavaScript","javascript",{"name":6133,"slug":3584,"type":14},"TypeScript","2026-07-31T06:23:32.095122",{"slug":4,"name":4,"fn":5,"description":6,"org":6136,"tags":6137,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6138,6139,6140],{"name":9,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":19,"slug":20,"type":14},{"slug":6142,"name":6142,"fn":6143,"description":6144,"org":6145,"tags":6146,"stars":21,"repoUrl":22,"updatedAt":6160},"deno-frontend","build Deno frontend apps with Fresh","Use when building a web frontend with Deno — running React, Vite, Astro, SvelteKit, Next.js, Nuxt or other npm frameworks under Deno, or working with Fresh, Deno's own island-architecture framework. Covers which path to pick, Fresh 2.x routes, handlers, islands, Preact signals, Tailwind, and Fresh 1.x to 2.x migration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6147,6148,6151,6154,6157],{"name":9,"slug":8,"type":14},{"name":6149,"slug":6150,"type":14},"Fresh","fresh",{"name":6152,"slug":6153,"type":14},"Frontend","frontend",{"name":6155,"slug":6156,"type":14},"Preact","preact",{"name":6158,"slug":6159,"type":14},"Tailwind CSS","tailwind-css","2026-07-31T05:52:44.546078",{"slug":6162,"name":6162,"fn":6163,"description":6164,"org":6165,"tags":6166,"stars":21,"repoUrl":22,"updatedAt":6174},"deno-sandbox","sandbox untrusted code with Deno","Use when building features that execute untrusted user code, AI-generated code, or need isolated code execution environments. Covers the @deno\u002Fsandbox SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6167,6170,6171],{"name":6168,"slug":6169,"type":14},"Code Execution","code-execution",{"name":9,"slug":8,"type":14},{"name":6172,"slug":6173,"type":14},"Sandboxing","sandboxing","2026-07-31T05:52:42.5755",{"slug":6176,"name":6176,"fn":6177,"description":6178,"org":6179,"tags":6180,"stars":21,"repoUrl":22,"updatedAt":6190},"migrate-to-deno","migrate Node.js projects to Deno","Use when moving a Node.js, npm, Yarn, pnpm, or Bun project to Deno, or when adopting Deno incrementally in an existing JavaScript or TypeScript codebase. Covers using Deno as a drop-in package manager, running existing package.json scripts, CommonJS versus ESM, node_modules layout, lockfile migration, permissions, whether to adopt the built-in toolchain, and per-tool command equivalents.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6181,6182,6183,6186,6189],{"name":9,"slug":8,"type":14},{"name":6130,"slug":6131,"type":14},{"name":6184,"slug":6185,"type":14},"Migration","migration",{"name":6187,"slug":6188,"type":14},"Node.js","node-js",{"name":6133,"slug":3584,"type":14},"2026-07-31T06:23:32.78688",{"items":6192,"total":306},[6193,6200,6206,6214,6220],{"slug":8,"name":8,"fn":6121,"description":6122,"org":6194,"tags":6195,"stars":21,"repoUrl":22,"updatedAt":6134},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6196,6197,6198,6199],{"name":6126,"slug":6127,"type":14},{"name":9,"slug":8,"type":14},{"name":6130,"slug":6131,"type":14},{"name":6133,"slug":3584,"type":14},{"slug":4,"name":4,"fn":5,"description":6,"org":6201,"tags":6202,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6203,6204,6205],{"name":9,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":19,"slug":20,"type":14},{"slug":6142,"name":6142,"fn":6143,"description":6144,"org":6207,"tags":6208,"stars":21,"repoUrl":22,"updatedAt":6160},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6209,6210,6211,6212,6213],{"name":9,"slug":8,"type":14},{"name":6149,"slug":6150,"type":14},{"name":6152,"slug":6153,"type":14},{"name":6155,"slug":6156,"type":14},{"name":6158,"slug":6159,"type":14},{"slug":6162,"name":6162,"fn":6163,"description":6164,"org":6215,"tags":6216,"stars":21,"repoUrl":22,"updatedAt":6174},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6217,6218,6219],{"name":6168,"slug":6169,"type":14},{"name":9,"slug":8,"type":14},{"name":6172,"slug":6173,"type":14},{"slug":6176,"name":6176,"fn":6177,"description":6178,"org":6221,"tags":6222,"stars":21,"repoUrl":22,"updatedAt":6190},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[6223,6224,6225,6226,6227],{"name":9,"slug":8,"type":14},{"name":6130,"slug":6131,"type":14},{"name":6184,"slug":6185,"type":14},{"name":6187,"slug":6188,"type":14},{"name":6133,"slug":3584,"type":14}]