Deno LandDeno

Deploy Docs

Projects

Projects are the most central resource in Deno Deploy. They group deployments, custom domains, and environment variables. Projects can be linked to a GitHub repository to enable the Deno Deploy Git integration.

Creating a Project

To create a project click on the New Project button on the Deno Deploy dashboard, or navigate to https://dash.deno.com/new.

Project names must be between 3 and 24 characters long, only contain a-z, 0-9 and -, and must not start or end with a hyphen (-). The project name will determine a project's production URL. It has the form $PROJECT_ID.deno.dev (e.g. https://hello.deno.dev). The production URL is the URL that your production deployment can be reached by.

Settings

In the project settings a project can be renamed or deleted. When renaming a project, the production URL of the project will be changed and traffic to the old URL will be dropped.

Deleting a project also deletes all linked custom domains, environment variables and deployments.

Domains

By default a deployment can be reached by it's preview URL, or by the project URL if the project has a production deployment. These domains always end in .deno.dev. It is also possible to use custom domains to serve traffic.

You must own the domain that you want to add to a project. If you do not own a domain yet, you can register one at a domain registrar like Google Domains, Namecheap, or gandi.net.

Adding a Domain

Domains can be added in the domain settings page of a project. To navigate there, click the "Settings" button on the project page, then select "Domains" from the sidebar.

Enter the domain name you wish to add to the project and press "Add". The domain is added to the domains list and will have a "Needs setup" badge. Click on the "Needs setup" badge to visit the domain setup page which will display the list of DNS records that need to be created/updated for your domain.

To update DNS records of your domain, go to the DNS configuration panel of your domain registrar (or the service you're using to manage DNS) and enter the records as described on the domain setup page. Once you have the DNS records updated, click the "Validate" button on the domain setup page. It will check if the DNS records are correctly set and updates the status to "Validated, needs a certificate".

To provision a certificate, press the "Provision Certificate" button. Provisioning a TLS certificate can take up to a minute. It is possible that the provisioning fails if your domain specifies a CAA record that prevents Let's Encrypt from provisioning certificates. Certificates will be automatically renewed around 30 days before the certificate expires.

Environment Variables

Environment variables are useful to store values like access tokens of web services. You can create them in the project dashboard and access them in your code via the Deno.env API. They are made available to both production and preview deployments.

To add an environment variable to your project, click on the "Settings" button on the project page and then on "Environment Variables" from the sidebar. Fill in the key/value fields and click on "Add" to add an environment variable to your project. You need to make a new deployment to access the newly added environment variables.

Preset Variables

Every deployment has the following environment variables preset, which you can access from your code.

  1. DENO_REGION

It holds the region code of the region in which the deployment is running. You can use this variable to serve region-specific content.

You can refer to the region code from the regions page.

  1. DENO_DEPLOYMENT_ID

It holds the ID of the deployment.

Git Integration

Git integration enables deployments on git push for GitHub repositories. You get preview deployments for PRs and production deployments when the PRs get merged to the production branch.

A prompt is displayed to select the production branch of your choice while linking the repository in the settings page.

Both public and private repositories are supported. And preview deployments are limited to pull requests by collaborators of the repository.

To enable Git integration, click on the Settings button on the project page and then on Git from the sidebar. Provide a GitHub URL of your repository's desired entry point and click on Link to link it to the project

The integration might fail if you do not have Deno Deploy GitHub App installed on your GitHub organization or the app doesn't have access to the repository you're linking. Either way, click on the Install GitHub App button and configure/install the GitHub App. And click on the Link button again to link the repository.


Please file an issue in our feedback repository if you find any problem in Deploy service or documentation.