> For the complete documentation index, see [llms.txt](https://umber.gitbook.io/umber/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://umber.gitbook.io/umber/getting-started/quickstart.md).

# Quickstart: Deploy Your First Asset

This walks through the dashboard flow for getting a single asset live: create an environment, create a virtual asset, upload a version, and deploy it.

{% hint style="info" %}
This guide creates an **unsecured** asset — one that doesn't require a [download key](/umber/concepts/api-keys.md#secured-downloads-use-download-keys) to download. It's the fastest way to see Umber working end to end.
{% endhint %}

## Step 1 — Create an environment

1. Log in. You'll land on the **Home** page, which has quick action links.
2. Choose **Create New Environment**. An environment is the logical space you'll deploy asset versions into (e.g. `dev`, `staging`, `prod`).
3. Fill in:
   * **Environment ID**
   * **Environment Name**
   * **Description** (optional)
4. Click **Create Environment**. You'll land on the Environment list page.

## Step 2 — Create a virtual asset

A virtual asset is a logical container that holds every version of a given asset — your site logo, a hero banner, a game texture, and so on.

1. Click **Assets** in the top nav, then **Single**. This opens the Virtual Assets list.
2. Click **+** to start a new asset. The wizard walks you through uploading a file, checking for duplicates, and filling in the asset's details — leave **Require Download Key** off for this walkthrough. Full field-by-field details: [Creating a Virtual Asset](/umber/guides/creating-a-virtual-asset.md).
3. On success, click **View Asset**. The version you uploaded is selected. Click **Deploy** next to it.

## Step 3 — Deploy the version to your environment

1. **Deploy** opens the **Deployments** page, with your version outlined in blue.
2. In the left column, select the environment you created in Step 1. The first environment is selected by default.
3. On your version's row, click **Deploy Here**. The version is now **Live** in this environment.
4. Click **Set Default** to make it the version this environment serves by default.
5. Confirm. A green border and pointer marker now show on this version, meaning it's the one this environment currently serves by default. Its own state stays **Live**. "Default" is which live version an environment currently points to, not a state a version is in; see [Deployment States](/umber/concepts/deployment-states.md).

{% hint style="info" %}
The same page lists every version of the asset against every environment, so later deploys, promotions and reverts all happen there too. See [Managing Deployments](/umber/guides/managing-deployments.md).
{% endhint %}

## Step 4 — Get the delivery URL

1. Go to the asset's detail page (**Home → Virtual Assets →&#x20;*****Asset ID***, or **Assets → Single** and select it).
2. In the **Default URLs** section, pick your environment. You'll get a URL shaped like:

```
https://adn.umbercloud.io/api/va/<domain-id>/<asset-id>/<env-id>/<platform-id>
```

Use this URL anywhere — plain HTML, a React component, a Unity game, an API response.

```html
<html>
  <head>
    <title>Umber URL Demo</title>
  </head>
  <body>
    <img width="100px" src="https://adn.umbercloud.io/api/va/<domain-id>/<asset-id>/<env-id>/<platform-id>">
  </body>
</html>
```

## Already have assets in a codebase?

If you're onboarding an existing project rather than starting from scratch, skip the manual per-asset flow above and use the [Umber CLI](/umber/cli-tools/umber-cli.md) instead — `umber assets migrate` scans your project, uploads everything it finds, and rewrites the code references for you. See [Migrating Assets with the CLI](/umber/guides/migrating-assets-with-cli.md).
