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

# Deploy on Cloud

> Create and manage LangSmith Cloud deployments including revisions, logs, metrics, and settings.

This is the comprehensive setup and management guide for deploying applications to LangSmith Cloud. LangSmith Cloud runs on AWS and GCP (see the [Cloud overview page](/langsmith/cloud) for region details). This guide covers two deployment methods: the [LangSmith UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud), which deploys from a connected GitHub repository, and the [`langgraph deploy` CLI command](/langsmith/cli#deploy), which builds and pushes directly from your local machine.

<Callout icon="bolt" color="#4F46E5" iconType="regular">
  **If you're looking for a quick setup**, try the [quickstart guide](/langsmith/deployment-quickstart) first.
</Callout>

Before setting up, review the [Cloud overview page](/langsmith/cloud) to understand the Cloud hosting model.

## Prerequisites

* A LangSmith account on the [Plus plan or above](https://www.langchain.com/pricing).
* [Verify that the LangGraph API runs locally](/langsmith/local-dev-testing). If the API does not run successfully (i.e., `langgraph dev`), deploying to LangSmith will fail as well.

## Create new deployment

Choose the deployment method that fits your workflow—the LangSmith UI connects to a GitHub repository and supports automatic deploys on push, while the `langgraph deploy` CLI command builds and deploys directly from your local project directory.

<Tabs>
  <Tab title="LangSmith UI">
    <Note>
      **One-Time Setup Required**: A GitHub organization owner or admin must complete the OAuth flow in the LangSmith UI to authorize the `hosted-langserve` GitHub app. This only needs to be done once per workspace. After the initial OAuth authorization, all developers with deployment permissions can create and manage deployments without requiring GitHub admin access.
    </Note>

    Starting from the [LangSmith UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud), select **Deployments** in the left-hand navigation panel, **Deployments**. In the top-right corner, select **+ New Deployment** to create a new deployment:

    1. In the **Create New Deployment** panel, fill out the required fields. For **Deployment details**:
       1. Select **Import from GitHub** and follow the GitHub OAuth workflow to install and authorize LangChain's `hosted-langserve` GitHub app to access the selected repositories. After installation is complete, return to the **Create New Deployment** panel and select the GitHub repository to deploy from the dropdown menu.
          <Note> The GitHub user installing LangChain's `hosted-langserve` GitHub app must be an [owner](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#organization-owners) of the organization or account. This authorization only needs to be completed once per LangSmith workspace—subsequent deployments can be created by any user with deployment permissions.</Note>
       2. Specify a name for the deployment.
       3. Specify the desired **Git Branch**. A deployment is linked to a branch. When a new revision is created, code for the linked branch will be deployed. The branch can be updated later in the [Deployment Settings](#deployment-settings).
       4. Specify the full path to the [LangGraph API config file](/langsmith/cli#configuration-file) including the file name. For example, if the file `langgraph.json` is in the root of the repository, specify `langgraph.json`.
       5. Use the checkbox to **Automatically update deployment on push to branch**. If checked, the deployment will automatically be updated when changes are pushed to the specified **Git Branch**. You can enable or disable this setting on the [Deployment Settings](#deployment-settings) in [the UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud).
          For **Deployment Type**:
          * Development deployments are meant for non-production use cases and are provisioned with minimal resources.
          * Production deployments can serve up to 500 requests/second and are provisioned with highly available storage with automatic backups.
       6. Determine if the deployment should be **Shareable through Studio**.
          1. If unchecked, the deployment will only be accessible with a valid LangSmith API key for the [workspace](/langsmith/administration-overview#workspaces).
          2. If checked, the deployment will be accessible through [Studio](/langsmith/studio) to any LangSmith user. A direct URL to Studio for the deployment will be provided to share with other LangSmith users.
       7. Specify **Environment Variables** and secrets. To configure additional variables for the deployment, refer to the [Environment Variables reference](/langsmith/env-var).
          1. Sensitive values such as API keys (e.g., `OPENAI_API_KEY`) should be specified as secrets.
          2. Additional non-secret environment variables can be specified as well.
       8. A new LangSmith [tracing project](/langsmith/observability) is automatically created with the same name as the deployment.
    2. In the top-right corner, select **Submit**. After a few seconds, the **Deployment** view appears and the new deployment will be queued for provisioning.
  </Tab>

  <Tab title="LangGraph CLI">
    <Note>
      The `langgraph deploy` command is in **beta**. It requires [Docker](https://docs.docker.com/get-docker/) to be installed and running. On Apple Silicon (M1/M2/M3), [Docker Buildx](https://docs.docker.com/build/install-buildx/) is also required for cross-compiling to `linux/amd64`.
    </Note>

    1. Install the [LangGraph CLI](/langsmith/cli):
       ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
       uv tool install langgraph-cli
       ```
    2. Add your LangSmith API key to a `.env` file in your project root:
       ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
       LANGSMITH_API_KEY=lsv2_...
       ```
    3. Run the deploy command from your project directory:
       ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
       langgraph deploy
       ```
       This creates a `dev` deployment named after your project directory. Use `--name` to specify a different name or `--deployment-type prod` for a production deployment:
       ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
       langgraph deploy --name my-agent --deployment-type prod
       ```
       After the command completes, the deployment is queued for provisioning. Environment variables can be managed through the [LangSmith UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud) after the deployment is created, or configured in the [`env` field of your `langgraph.json`](/langsmith/cli#configuration-file).
  </Tab>
</Tabs>

## Create new revision

When [creating a new deployment](#create-new-deployment), a new revision is created by default. You can create subsequent revisions to deploy new code changes.

<Tabs>
  <Tab title="LangSmith UI">
    Starting from the [LangSmith UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud), select **Deployments** in the left-hand navigation panel. Select an existing deployment to create a new revision for.

    1. In the **Deployment** view, in the top-right corner, select **+ New Revision**.
    2. In the **New Revision** modal, fill out the required fields.
       1. Specify the full path to the [API config file](/langsmith/cli#configuration-file) including the file name. For example, if the file `langgraph.json` is in the root of the repository, specify `langgraph.json`.
       2. Determine if the deployment should be **Shareable through Studio**.
          * If unchecked, the deployment will only be accessible with a valid LangSmith API key for the [workspace](/langsmith/administration-overview#workspaces).
          * If checked, the deployment will be accessible through [Studio](/langsmith/studio) to any LangSmith user. A direct URL to Studio for the deployment will be provided to share with other LangSmith users.
       3. Specify **Environment Variables** and secrets. Existing secrets and environment variables are prepopulated. To configure additional variables for the revision, refer to the [Environment Variables reference](/langsmith/env-var).
          1. Add new secrets or environment variables.
          2. Remove existing secrets or environment variables.
          3. Update the value of existing secrets or environment variables.
    3. Select **Submit**. After a few seconds, the **New Revision** modal will close and the new revision will be queued for deployment.
  </Tab>

  <Tab title="LangGraph CLI">
    Re-run `langgraph deploy` from your project directory. The command finds the existing deployment by name and creates a new revision with your latest code changes:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy
    ```

    To target a specific deployment by ID rather than by name, use `--deployment-id`:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy --deployment-id <DEPLOYMENT_ID>
    ```

    Use `langgraph deploy list` to view all deployments and find their IDs:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy list
    ```

    <Note>
      `langgraph deploy` can only update deployments that were originally created by `langgraph deploy`. Deployments created through the LangSmith UI or GitHub integration cannot be updated with this command.
    </Note>
  </Tab>
</Tabs>

## View build and server logs

Build and server logs are available for each revision.

<Tabs>
  <Tab title="LangSmith UI">
    Starting from the **Deployments** view:

    1. Select the desired revision from the **Revisions** table. A panel slides open from the right-hand side and the **Build** tab is selected by default, which displays build logs for the revision.
    2. In the panel, select the **Server** tab to view server logs for the revision. Server logs are only available after a revision has been deployed.
    3. Within the **Server** tab, adjust the date/time range picker as needed. By default, the date/time range picker is set to the **Last 7 days**.
  </Tab>

  <Tab title="LangGraph CLI">
    Use `langgraph deploy logs` to fetch logs for a deployment.

    To view server (runtime) logs:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy logs
    ```

    To view build logs:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy logs --type build
    ```

    To tail logs continuously as they arrive:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy logs --follow
    ```

    Filter logs by time range, log level, or search string:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy logs --start-time 2026-03-01T00:00:00Z --level ERROR
    ```

    If you have multiple deployments, specify the target by name or ID:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy logs --name my-agent
    langgraph deploy logs --deployment-id <DEPLOYMENT_ID>
    ```

    For all available options, refer to the [`deploy logs` CLI reference](/langsmith/cli#deploy-logs).
  </Tab>
</Tabs>

## View deployment metrics

Once your deployment is live, you can monitor its performance from the [LangSmith UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud).

Starting from the LangSmith UI:

1. In the left-hand navigation panel, select **Deployments**.
2. Select an existing deployment to monitor.
3. Select the **Monitoring** tab to view the deployment metrics. Refer to a list of [all available metrics](/langsmith/control-plane#monitoring).
4. Within the **Monitoring** tab, use the date/time range picker as needed. By default, the date/time range picker is set to the **Last 15 minutes**.

## Interrupt revision

Interrupting a revision will stop deployment of the revision.

<Warning>
  **Undefined Behavior**
  Interrupted revisions have undefined behavior. This is only useful if you need to deploy a new revision and you already have a revision "stuck" in progress. In the future, this feature may be removed.
</Warning>

Starting from the **Deployments** view:

1. Select the menu icon (three dots) on the right-hand side of the row for the desired revision from the **Revisions** table.
2. Select **Interrupt** from the menu.
3. A modal will appear. Review the confirmation message. Select **Interrupt revision**.

## Delete deployment

<Tabs>
  <Tab title="LangSmith UI">
    Starting from the [LangSmith UI](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=langsmith-deploy-to-cloud):

    1. In the left-hand navigation panel, select **Deployments**, which contains a list of existing deployments.
    2. Select the menu icon (three dots) on the right-hand side of the row for the desired deployment and select **Delete**.
    3. A **Confirmation** modal will appear. Select **Delete**.
  </Tab>

  <Tab title="LangGraph CLI">
    Use `langgraph deploy list` to find the ID of the deployment you want to delete:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy list
    ```

    Then delete it by ID:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy delete <DEPLOYMENT_ID>
    ```

    To skip the confirmation prompt, use `--force`:

    ```shell theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
    langgraph deploy delete --force <DEPLOYMENT_ID>
    ```
  </Tab>
</Tabs>

## Deployment settings

Starting from the **Deployments** view:

1. In the top-right corner, select the gear icon (**Deployment Settings**).
2. Update the `Git Branch` to the desired branch.
3. Check/uncheck checkbox to **Automatically update deployment on push to branch**.
   1. Branch creation/deletion and tag creation/deletion events will not trigger an update. Only pushes to an existing branch will trigger an update.
   2. Pushes in quick succession to a branch will queue subsequent updates. Once a build completes, the most recent commit will begin building and the other queued builds will be skipped.

## Add or remove GitHub repositories

After installing and authorizing LangChain's `hosted-langserve` GitHub app, repository access for the app can be modified to add new repositories or remove existing repositories. If a new repository is created, it may need to be added explicitly.

1. From the GitHub profile, navigate to **Settings** > **Applications** > `hosted-langserve` > click **Configure**.
2. Under **Repository access**, select **All repositories** or **Only select repositories**. If **Only select repositories** is selected, new repositories must be explicitly added.
3. Click **Save**.
4. When creating a new deployment, the list of GitHub repositories in the dropdown menu will be updated to reflect the repository access changes.

## Allowlist IP addresses

All traffic from LangSmith deployments created after January 6th 2025 will come through a NAT gateway.
This NAT gateway will have several static IP addresses depending on the region you are deploying in. Refer to the table below for the list of IP addresses to allowlist:

| US (GCP)       | EU (GCP)       | US (AWS)      |
| -------------- | -------------- | ------------- |
| 35.197.29.146  | 34.90.213.236  | 3.13.80.97    |
| 34.145.102.123 | 34.13.244.114  | 3.146.216.198 |
| 34.169.45.153  | 34.32.180.189  | 16.59.72.244  |
| 34.82.222.17   | 34.34.69.108   |               |
| 35.227.171.135 | 34.32.145.240  |               |
| 34.169.88.30   | 34.90.157.44   |               |
| 34.19.93.202   | 34.141.242.180 |               |
| 34.19.34.50    | 34.32.141.108  |               |
| 34.59.244.194  |                |               |
| 34.9.99.224    |                |               |
| 34.68.27.146   |                |               |
| 34.41.178.137  |                |               |
| 34.123.151.210 |                |               |
| 34.135.61.140  |                |               |
| 34.121.166.52  |                |               |
| 34.31.121.70   |                |               |

***

<div className="source-links">
  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>

  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/langsmith/deploy-to-cloud.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>
</div>
