---
layout: docs
page_title: deploy - waypoint.hcl
description: |-
  The `deploy` stanza describes how an application is deployed. A deploy takes a previously built artifact and stages it onto the target deployment platform. The target deployment platform is pluggable and can be Docker, Kubernetes, Nomad, EC2, and more.
---

# `deploy` Stanza

<Placement groups={[['app', 'deploy']]} />

The `deploy` stanza describes how an application is deployed.
A deploy takes a previously built artifact and stages it onto the target
deployment platform. The target deployment platform is pluggable and can be
Docker, Kubernetes, Nomad, EC2, and more. Read more about the
[deploy phase of the application lifecycle here](/docs/lifecycle/deploy).

Exactly one `deploy` stanza is required within an application stanza.

```hcl
app "frontend" {
  build {
    use "docker" {}

    registry {
      # ...
    }
  }

  deploy {
    use "kubernetes" {}

    hook {
      # ...
    }
  }

# ...
}
```

## `deploy` Parameters

### Required

- `use` <code>([use][use])</code> - The plugin to use for deploying the
  application. For example, the "kubernetes" plugin will create a deployment
  within Kubernetes.

### Optional

- `hook` <code>([hook][hook]: nil)</code> - [Hooks](/docs/lifecycle/hooks)
  to execute before and/or after the deploy.

[hook]: /docs/waypoint-hcl/hook 'Hook Stanza'
[use]: /docs/waypoint-hcl/use 'Use Stanza'
