# Novu CLI Deployment (/framework/deployment/cli)

Learn how to use the Novu CLI to synchronize your workflows to Novu Cloud for production deployment.

import { Tab, Tabs } from 'fumadocs-ui/components/tabs';

The Novu CLI provides a mechanism for you to synchronize your workflows into Novu Cloud so that non-technical Novu users can control the workflow and Step-level controls and enable your workflows to be triggered via Novu API.

<Tabs items={['US Region', 'EU Region']}>
  <Tab value="US Region">
    ```bash
    npx novu@latest sync \
      --bridge-url <YOUR_DEPLOYED_URL_WITH_BRIDGE_ENDPOINT> \
      --secret-key <NOVU_SECRET_KEY> \
      --api-url https://api.novu.co
    ```
  </Tab>

  <Tab value="EU Region">
    ```bash
    npx novu@latest sync \
      --bridge-url <YOUR_DEPLOYED_URL_WITH_BRIDGE_ENDPOINT> \
      --secret-key <NOVU_SECRET_KEY> \
      --api-url https://eu.api.novu.co
    ```
  </Tab>
</Tabs>

* If your application api server is running at URL **[https://api.domain.com](https://api.domain.com)** and **/api/novu** endpoint is serving Novu workflows created using Novu Framework, then `<YOUR_DEPLOYED_URL>`in above command will be `https://api.domain.com/api/novu`

* If your application is running in local machine with a local studio server, the tunnel URL can be used as `<YOUR_DEPLOYED_URL>`. The tunnel URL follows the format of `https://<UUID>.novu.sh/api/novu`, and example is `https://041e553c-0dbf-47e0-8ffa-c4536f390145.novu.sh/api/novu`. In this example `041e553c-0dbf-47e0-8ffa-c4536f390145` is the unique tunnel identifier which is generated for each Novu user when starting a tunnel via `npx novu@latest dev`. The tunnel identifier is persisted to your local machine to guarantee the same tunnel URL each time you invoke `npx novu@latest dev`.

## Using vercel preview url

In free tier, vercel preview urls for non production deployments are not publicly accessible. You will need to enable [Protection Bypass for Automation](https://vercel.com/docs/security/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation#protection-bypass-for-automation) from settings to make the preview url publicly accessible. Use vercel generated secret key in query params with bridge url to make the bridge url accessible to novu.

Example: `https://my-app-preview-url.vercel.app/api/novu?x-vercel-protection-bypass=BYPASS_SECRET_KEY`
