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

# Manage Deployment Environments in Varo Cloud

> Create and configure development, staging, and production environments in Varo Cloud. Set environment variables, secrets, and promotion rules.

Environments in Varo Cloud represent deployment targets for your project. Each project ships with three default environments — development, staging, and production — giving you a structured pipeline from local iteration all the way to live traffic. You can also create custom environments to match your team's workflow, each with its own configuration, variables, and access controls.

## Default environments

Every new Varo Cloud project is provisioned with three ready-to-use environments. Each environment is isolated, meaning deployments, variables, and secrets in one environment do not affect the others.

<CardGroup cols={3}>
  <Card title="Development" icon="code" href="/guides/first-deployment">
    Intended for active development and fast iteration. Deployments here are lightweight, with relaxed resource limits and verbose logging enabled by default. Use this environment to test changes before promoting them upstream.
  </Card>

  <Card title="Staging" icon="flask" href="/guides/first-deployment">
    A pre-production environment that mirrors your production configuration as closely as possible. Run integration tests, QA checks, and stakeholder reviews here before promoting to production.
  </Card>

  <Card title="Production" icon="rocket" href="/guides/first-deployment">
    Serves live user traffic. Production deployments are subject to your plan's full resource allocation, uptime SLA, and alerting rules. Changes should always pass staging validation before reaching this environment.
  </Card>
</CardGroup>

## Create a custom environment

In addition to the three default environments, you can create custom environments for use cases such as feature branches, load testing, or client previews. To create a custom environment:

1. Open your project in the [Varo Cloud dashboard](https://varo.cloud).
2. Navigate to the **Environments** tab.
3. Click **New Environment**.
4. Enter a name for the environment and select its type (Development, Staging, or Production behavior profile).
5. Click **Save**.

The new environment appears in your environment list and is immediately available as a deployment target.

## Environment variables and secrets

Each environment maintains its own set of environment variables that are injected into your application at runtime. Variables are encrypted at rest and are never exposed in build logs or API responses after creation.

To add or update variables, navigate to **Settings → Environment Variables** within your project, select the target environment, and click **Add Variable**.

Varo Cloud supports two types of variables:

| Type       | Description                                                                                                               |
| ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Plain**  | Visible in the dashboard after creation. Use for non-sensitive configuration like feature flags or API endpoint URLs.     |
| **Secret** | Masked in the dashboard after saving. Use for sensitive values like database passwords, third-party API keys, and tokens. |

Variables added to a specific environment are only available to deployments running in that environment. They are not shared across environments unless you explicitly duplicate them.

## Promoting between environments

The recommended workflow in Varo Cloud is to deploy to staging first, validate your changes, and then promote the same deployment artifact to production. Promoting preserves the exact build so you are never shipping untested code to production.

To promote a deployment from the dashboard:

1. Go to the **Environments** tab in your project.
2. Locate the deployment you want to promote in the staging environment.
3. Click **Promote** and select **Production** as the target environment.
4. Confirm the promotion.

You can also trigger a promotion programmatically using the API by creating a new deployment against the production environment and referencing the artifact from your staging deployment:

```bash theme={null}
curl -X POST https://inference.varo.cloud/v1/deployments \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project_id": "proj_abc123", "environment": "production", "source_deployment_id": "dep_abc123"}'
```

Replace `proj_abc123` with your project ID and `dep_abc123` with the ID of the staging deployment you want to promote. The API returns the new production deployment object on success.

## Environment-specific configuration

Any configuration value set at the environment level takes precedence over project-level defaults. This allows you to define sensible defaults for your entire project while overriding specific values — such as log verbosity, replica counts, or feature flags — on a per-environment basis.

For example, you might set `LOG_LEVEL=info` at the project level and override it with `LOG_LEVEL=debug` in the development environment without touching staging or production.

<Tip>
  Keep your production environment variables strictly controlled. In Varo Cloud, you can restrict which team members can view or edit production-level variables by assigning the **Viewer** role to developers who only need access to development and staging environments.
</Tip>
