# Deploy Button (/docs/compute/deploy-button)

> For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL.

Add a Deploy with Prisma button that copies a public Composer repository and starts a Composer-managed deployment.

Location: Compute > Deploy Button

The Deploy Button starts a guided deployment from a compatible public GitHub repository. Prisma copies the source into a new repository under the chosen GitHub account or organization and adds a managed GitHub Actions workflow. That workflow runs Composer, which creates the Prisma project and provisions the resources declared by the repository.

<img src="/docs/img/deploy-button.svg" alt="Deploy with Prisma" width="172" height="36" />

Add the button to a README, blog post, or website so other users can deploy their own copy.

## Create your button [#create-your-button]

Enter your repository URL and copy the generated snippet:

<DeployButtonGenerator />

## Repository requirements [#repository-requirements]

Before publishing the button, make sure the source repository:

* is a public GitHub repository;
* has a Composer config and module at its root;
* default-exports a Composer module whose name is a string literal;
* has a root `package.json` with a `build` script, or uses Nx build targets;
* has one supported root lockfile: `bun.lock`, `package-lock.json`, `pnpm-lock.yaml`, or `yarn.lock`; and
* declares every required service and resource in its Composer module.

The repository can contain up to 100 files and 25 MB in total, with no file larger than 5 MB. Symlinks, Git submodules, and custom GitHub Actions workflows are not supported.

See [Getting started with Composer](https://www.prisma.io/docs/composer/getting-started) to prepare a repository.

## URL options [#url-options]

A Deploy Button links to:

```text title="Deploy Button URL"
https://console.prisma.io/new/clone?repository-url=<your repository URL>
```

| Parameter        | Required | Description                                                                                                  |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------ |
| `repository-url` | Yes      | Public GitHub repository in the form `https://github.com/owner/repo`. URL-encode it when composing the link. |
| `project-name`   | No       | Prefills the destination repository name. The user can change it.                                            |
| `utm_source`     | No       | Records where the deployment link was published, such as `github-readme`.                                    |

Deploy Button URLs do not accept environment variables. The first deployment must not depend on secrets that Composer cannot provide. Add any other variables to the project after deployment, then redeploy.

## How it works [#how-it-works]

1. The user chooses a workspace, a GitHub account or organization, a repository name, and its visibility.
2. Prisma copies the source into a new repository under that account or organization and adds the deployment workflow.
3. The workflow runs Composer, which creates the Prisma project, provisions its resources, and deploys the app. Future pushes run the workflow again.

## Related pages

- [`Alchemy`](https://www.prisma.io/docs/compute/alchemy): Provision Prisma Postgres and deploy applications to Prisma Compute in one TypeScript stack.
- [`Branching`](https://www.prisma.io/docs/compute/branching): Branches are isolated environments that map to your Git branches, so preview work never touches production.
- [`Deploy on push`](https://www.prisma.io/docs/compute/deploy-on-push): Graduate a Composer app from manual deploys to a Git workflow, with production deploys on push and an isolated preview environment per branch.
- [`Deployments`](https://www.prisma.io/docs/compute/deployments): How deploys create service versions on Prisma Compute, and how to inspect, promote, roll back, start, and stop them.
- [`Domains`](https://www.prisma.io/docs/compute/domains): Point a custom domain at a production app and the platform verifies DNS and provisions TLS for you.