Create deploys

This page covers features and tools you can use to create deploys with or without continuous deployment.

Note

When you create a deploy manually without continuous deployment, Netlify does not run a build command.

Deploy with Git

Continuous deployment works by connecting a Git repository to a Netlify site and keeping the two in sync.

It works for plain static sites, but it's even more powerful when you're using a static site generator or a frontend build tool like webpack, Gulp, or Grunt.

Netlify will run your build command and deploy the result whenever you push to your Git repo. The benefits of Netlify's continuous deployment include:

  • No deploying without committing and pushing first
  • Easy collaboration through pull/merge requests
  • Fix a typo through your Git provider's web UI from your mobile
  • Edit content without code by using a static site CMS, Netlify CMS

Netlify CLI

You can use the CLI to set up continuous deployment for a Git repository. You can also use the CLI to create manual deploys without continuous deployment.

Drag and drop

Deploys can be triggered manually by dragging a project folder to the deploy dropzone in Netlify Drop or at the bottom of the Deploys and dashboard pages.

API endpoints

You can use the API to create deploys manually using a file digest or a zip file.

Deploy to Netlify button

The "Deploy to Netlify" button helps users deploy new sites from templates with one single click. It provides web developers a simple one-click step to let their users deploy those applications on Netlify.

It's designed to be used in README files, documentation sites, and probably anything that renders as an html file.

This is an example of how it looks:

Deploy to Netlify

Markup

You can use any markup language that renders as HTML to display the button. There are two very important URLs that you'll need:

  • The SVG URL for the button: https://www.netlify.com/img/deploy/button.svg.

  • The URL the button takes users to: https://app.netlify.com/start/deploy. This link requires the public Git repository as a parameter, for example:

    https://app.netlify.com/start/deploy?repository=https://github.com/netlify/netlify-statuskit
    

Template configuration

You can provide a set of default values for your template directly in the template's git repository. Create a netlify.toml file in the root of the repository, if you don't have it already. We'll read the information from there. This file can also be used to set options for continuous deployment, you can read more about it in the file-based configuration documentation.

Within the [template] section in that file, you can set two directives:

  • A list of incoming hooks for the users site. This is very useful if you want to allow a third party service to control when to deploy the site. This is what headless CMS services like Contentful and DatoCMS do. Users can give those providers the address Netlify generates for their specific incoming requests.

    [template]
      incoming-hooks = ["Contentful"]
    
  • A list of required environment variables. This is the way to let users configure specific configuration options upon deployment. It also enables customization without having to change the code of the base template.

    [template.environment]
      SECRET_TOKEN = "change me for your secret token"
      CUSTOM_LOGO = "set the url to your custom logo here"
    

Build hooks

Build hooks give you unique URLs you can use to trigger new builds and deploys.

Zapier integrations

This feature may not be available on all plans.

Netlify is available on Zapier, where you can connect Netlify with over 1,000 other applications. You can use Zapier "Zaps" to start a new deploy of your site in response to a trigger from another service. You can find out more on our blog, or use one of the templates below to get started:

Manual deploys: Rolling Back Versions