> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy a project

> Publish project work to environments, domains, and servers.

Deploy a project when a release is ready to run in an environment.

## Steps

1. Confirm the target environment has the right variables and secrets.
2. Create a release from project work.
3. Deploy the release to an environment.
4. Configure domains when the deployment needs public routing.
5. Inspect deployment and server state.

## Try it with REST

Create a release:

`POST /projects/{project_reference}/releases`

```bash title="Terminal" theme={null}
curl -X POST https://api.veryfront.com/projects/support-assistant/releases \
  -H "Authorization: Bearer $VERYFRONT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production release"
  }'
```

Deploy the release:

`POST /projects/{project_reference}/deployments`

```bash title="Terminal" theme={null}
curl -X POST https://api.veryfront.com/projects/support-assistant/deployments \
  -H "Authorization: Bearer $VERYFRONT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "release_id": "<RELEASE_ID>",
    "environment_id": "<ENVIRONMENT_ID>"
  }'
```

## API surfaces

| Surface | Start here                                                                                                                                                                                                               |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| REST    | [Releases](/cloud/rest/api-reference/releases/list-releases), [Deployments](/cloud/rest/api-reference/deployments/create-deployment), [Project Servers](/cloud/rest/api-reference/project-servers/create-project-server) |
| GraphQL | [Create Release](/cloud/graphql/operations/releases/mutations/createrelease), [Create Deployment](/cloud/graphql/operations/projects/mutations/createdeployment)                                                         |
| MCP     | [Create Release](/cloud/mcp/tools/create-release), [Create Deployment](/cloud/mcp/tools/create-deployment)                                                                                                               |

## Verify

List deployments and confirm the release is assigned to `production`.

Check server state before sending production traffic to the deployment.

## Deployment surfaces

| Surface     | Use it for                                   |
| ----------- | -------------------------------------------- |
| Environment | Runtime configuration and deployment target. |
| Release     | Versioned project work that can run.         |
| Deployment  | Release assigned to an environment.          |
| Domain      | Public routing for deployed work.            |
| Server      | Long-running runtime capacity.               |

## API reference

| API                       | Use                                                         |
| ------------------------- | ----------------------------------------------------------- |
| [REST](/cloud/rest)       | Environments, domains, deployments, releases, and servers.  |
| [GraphQL](/cloud/graphql) | Deployment, domain, release, environment, and server views. |
| [MCP](/cloud/mcp)         | Deployment, domain, release, environment, and server tools. |
