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

# Publish and deploy App versions

> Publishing creates an immutable App version; deploying starts one. How to do each, and which settings you can change without creating a version.

Publishing and deploying are independent actions. **Publish** creates a new immutable version and doesn't start it. **Deploy** starts a published version, making it reachable by authorized viewers.

You can therefore publish several versions before deploying any of them, and redeploy an older version at any time.

## Publish a version

Publish from a workspace that has an active Draft App by selecting **Publish App** (see [Develop and test an App](/cloud/platform-capabilities/features/apps/develop-and-test-an-app)), or directly from the App list page without a Draft App.

A version captures the App identity and version-defining content listed below. When you publish directly without a Draft, provide an entry point, code commit, Compute Environment and revision, and Hardware Tier. Other fields, such as Data Plane, volume and Dataset configuration, and identity propagation, can use their defaults. The result is a new version in the App's history, with the Git reference resolved and the commit pinned at publish time.

<Note>
  When you publish into an existing App, the entry point and the code configuration type must match the target App's. Domino rejects a mismatch. The entry point is fixed for the life of an App, so create a new App to change it.
</Note>

## Deploy a version

Select a version on the App details page and select **Deploy**. A dialog lets you review and update deployment settings before the version starts. An App has at most one running instance at a time.

In that dialog you can set a **custom URL path** for easier sharing (for example, `/apps/demo`), and select **Enable deep linking** to let viewers link to a specific view inside the App. Deep linking needs the `SecureIdentityPropagationToAppsEnabled` feature flag, so ask your administrator to check [Configuration settings for Apps](/cloud/platform-capabilities/features/apps/app-logs-and-versioning/app-configuration-settings) if the option is missing.

Any published version can be deployed, not just the newest. [App versioning and reproducibility](/cloud/platform-capabilities/features/apps/app-versioning-and-reproducibility) covers restoring pinned inputs and rolling back to a previous version.

<Note>
  If Governance is enabled and a policy applied to the App gates the **Deploy** action, the Deploy dialog lists any missing approvals and disables **Deploy App version** until they are granted. See [Govern an App](/cloud/platform-capabilities/features/apps/govern-an-app) for the full flow.
</Note>

## What creates a version, and what doesn't

Deployment settings govern how and where an App runs rather than what it runs, so editing them doesn't produce a version.

| Setting group                | Fields                                                                                                                                                                                                                                                                                                       | Version behavior                                                                                                                                        |
| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **App identity**             | Entry point; code configuration type                                                                                                                                                                                                                                                                         | Captured by every version, but fixed for the life of the App. Create another App to change either field.                                                |
| **Version-defining content** | Source code (the Git reference and resolved commits for the main repository, Domino File System, and imported Project repositories); Compute Environment and environment revision; Data Plane; external data volume mounts; NetApp Volume mounts; Dataset mount configuration; extended identity propagation | Publishing a Draft or editing one of these fields creates a version. The fields are immutable for that version, and an edit stops the running instance. |
| **Deployment settings**      | Hardware Tier; autoscaling; custom (vanity) URL; iframe rendering, deep linking, and query parameters                                                                                                                                                                                                        | Updates the existing version in place and restarts the running instance. No new version is created.                                                     |
| **Version metadata**         | Version description (Version Notes); Tags                                                                                                                                                                                                                                                                    | Updates the existing version in place without restarting the running instance. No new version is created.                                               |

Starting and stopping an App never create a version.

## Manage Apps through the API

The `/api/apps/v1/` endpoints cover the same operations: create an App, create a Draft App for a workspace, publish, list and create versions, and start, stop, or live-sync a version. Publishing into an App whose entry point or configuration type doesn't match returns `422`.

The older `/api/apps/beta/` endpoints remain active and unchanged, so existing callers need no migration. App instance reads (list instances, logs, real-time logs, views, and instance delete) are available only on the beta endpoints.

Both surfaces are documented in the [Domino Platform API reference](/cloud/reference/api/domino-open-api) under the Apps, AppVersions, and AppInstances tags.

## Related

* [Create an App](/cloud/platform-capabilities/features/apps/create-an-app): The two entry points for a new App.
* [Develop and test an App](/cloud/platform-capabilities/features/apps/develop-and-test-an-app): Iterate in a workspace before publishing.
* [Share an App](/cloud/platform-capabilities/features/apps/share-an-app): Control who can discover and open a deployed App.
* [App versioning and reproducibility](/cloud/platform-capabilities/features/apps/app-versioning-and-reproducibility): What a version pins and how to start an older one.


## Related topics

- [Publish a Shiny App](/cloud/platform-capabilities/features/apps/common-app-frameworks/shiny-app.md)
- [Publish a Flask App](/cloud/platform-capabilities/features/apps/common-app-frameworks/flask-app.md)
- [Publish a Dash App in Domino](/cloud/platform-capabilities/features/apps/common-app-frameworks/dash-app.md)
- [Publish a Streamlit LLM App in Domino](/cloud/platform-capabilities/features/apps/common-app-frameworks/streamlit-app-llm.md)
