# Serverless deployment with Deno Deploy In this guide, we'll show you how to deploy serverless functions using [Deno Deploy](https://deno.com/deploy). ## Creating the project You can create a new Deno project with a single command. ```shell npx create-nx-workspace@latest denoapp --preset=@nx/deno ``` Once the command is finished, you can `cd` into the workspace. ```shell cd denoapp ``` To run the server, use `nx serve` and the server will start on `http://localhost:8000`. You can also run lint and tests with `nx lint` and `nx test` respectively. For existing projects, see the next section, otherwise you can skip to [deployment](#deno-deploy). ### Configure existing projects **Skip this step if you are not configuring an existing project.** For existing workspaces, you will need to install the `@nx/deno` package. {% tabs %} {% tab label="npm" %} ```shell npm i -D @nx/deno ``` {% /tab %} {% tab label="yarn" %} ```shell yarn add -D @nx/deno ``` {% /tab %} {% tab label="pnpm" %} ```shell pnpm add -D @nx/deno ``` {% /tab %} {% /tabs %} Now, you can generate a Deno project. ```shell nx g @nx/deno:app denoapp ``` You are now ready to deploy the project. ## Deno Deploy We will use [Deno Deploy](https://deno.com/deploy) to host our serverless functions. First, you'll need to run the generator to set up your project. ```shell nx g @nx/deno:setup-serverless --platform=deno-deploy ``` A new `nx deploy` target will be added to your project, but before you can run it there are a few set up steps. 1. Push your repository to [GitHub](https://github.com/). 2. Go to [Deno dashboard](https://dash.deno.com/) and set up your Deno project. You need to authorize GitHub to allow access to your repositories, then you need to specify the main file (e.g. `src/main.ts`), and the production branch (e.g. `main`). 3. Generate an access token from your [account settings page](https://dash.deno.com/account#access-tokens). Copy the new token somewhere. 4. Add an entry to the project's `.env` file: `DENO_DEPLOY_TOKEN=` (create this file if needed, and add it to `.gitignore` so you don't commit it) 5. Install the [`deployctl`](https://deno.com/deploy/docs/deployctl) CLI tool. Once you are done the above steps, you can deploy and view your Deno app! ```shell nx deploy ``` You can find the production URL from the [Deno dashboard](https://dash.deno.com/) (e.g. `https://acme-denoapp.deno.dev/`). Browsing to the production URL should return the default JSON message: `{ "message": "Hello denoapp" }`.