# 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.
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:
## 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=
```
| 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.
- [`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.
- [`Environment variables`](https://www.prisma.io/docs/compute/environment-variables): Project configuration that gets injected into your deployments, scoped to production, preview, or a single branch.
- [`Environments: production, staging and preview branches`](https://www.prisma.io/docs/compute/branching): Each branch maps to a Git branch, such as a preview per feature or a long-lived staging environment, and gets its own Compute services and deployments. Its data stays separate from production when previews use a preview-scoped DATABASE_URL.