Skip to main content
On this page

Deploying your app

Once your app runs locally, you have a few ways to get it into production. Broadly, you either let a managed platform run it for you, or you run it yourself on infrastructure you control. This page maps the options and points to the guide for each.

Choosing an option Jump to heading

  • Want the least operational overhead? Use Deno Deploy, the managed platform built for Deno.
  • Already have container infrastructure, or want portability across clouds? Ship a container image.
  • Targeting a specific cloud or serverless provider? Jump to the platform guides.
  • Want a single self-contained artifact with no runtime to install? Compile to a standalone binary and run it on any machine.

Deno Deploy (managed platform) Jump to heading

Deno Deploy is Deno's serverless platform. You push code and it handles builds, TLS, global distribution, and scaling, with first-class support for Deno and Node apps and frameworks like Next.js, Astro, and SvelteKit. It also offers integrated observability, cron, and a built-in key-value database.

Containers and Docker Jump to heading

Containers give you a portable artifact you can run on any host, orchestrator, or cloud. Deno publishes official images in several variants.

  • Deno and Docker covers Dockerfiles, multi-stage builds, Docker Compose, workspaces, and production best practices.

Cloud and serverless platforms Jump to heading

Step-by-step guides for deploying a Deno app to specific providers:

Browse all of these under Deploying Deno projects in the examples.

Self-hosting the runtime Jump to heading

To run on a VM or bare metal yourself, you have two paths:

  • Compile a standalone binary with deno compile. The result bundles your code and the runtime into a single executable with no external dependencies, which you can copy to a server and run directly.
  • Install Deno on the host and run your app with deno serve for a production-ready HTTP server, typically behind a process manager such as systemd.

Production considerations Jump to heading

Whichever option you choose, a few things carry across:

  • Permissions. Grant only the access your app needs (--allow-net, --allow-read, and friends) rather than running with all permissions.
  • Environment variables. Configure secrets and per-environment settings through the environment rather than hard-coding them.
  • Observability. Deno has built-in OpenTelemetry support for traces, metrics, and logs.
  • Continuous integration. Run tests, linting, and formatting checks before you deploy.

Last updated on

Did you find what you needed?

Edit this page
Privacy policy