---
title: blossom env_var:push
url: "/docs/reference/cli/env_var/push/"
canonical_url: https://docs.blossom88.com/docs/reference/cli/env_var/push/
markdown_url: https://docs.blossom88.com/docs/reference/cli/env_var/push.md
summary: Push a .env file to an Environment
categories:
- cli
- reference
---

# blossom env_var:push

Push a .env file to an Environment

## Usage

    blossom env_var:push --environment ENVIRONMENT [--file FILE] [--prune] [--dry-run]

## Flags

| Flag | Description |
| --- | --- |
| `--environment, -e (required)` | Environment id to push to |
| `--file` | Dotenv file to push. Default: .env.<environment name> |
| `--prune` | Remove variables the file does not mention |
| `--dry-run` | Show the plan without changing anything |

Examples:

    blossom env_var:push --environment environment-100
    blossom env_var:push --environment environment-100 --file .env.production
    blossom env_var:push --environment environment-100 --dry-run
    blossom env_var:push --environment environment-100 --prune
    blossom env_var:push --environment environment-100 --file /path/to/local-envs/prod.env

Pushes a dotenv file to one Environment in a single change. The file
defaults to `.env.<environment name>`, so `.env.production` for an
Environment named `production`. Keys missing from Blossom are added and
changed values are updated; nothing is removed unless `--prune` is given,
which makes Blossom match the file exactly. `--dry-run` prints the plan
without changing anything.

## Build and runtime variables

**Markers apply to every assignment until the next marker.** Blank lines
and ordinary comments do not end a block.

```dotenv
# blossom:build
PUBLIC_API_URL=https://api.example.com
ASSET_HOST=https://assets.example.com

# blossom:runtime
DATABASE_URL=postgres://example
SECRET_KEY_BASE=example-secret
```

### Build and runtime

`# blossom:build` enables Build for the following variables, such as settings
needed for asset compilation. **They remain available at runtime too.**

### Runtime only

**`# blossom:runtime` turns off Build for the following variables.** Put it
after the build block to keep runtime credentials out of builds.

Before the first marker, existing variables keep their Build setting and new
variables are runtime-only. Removing a marker does not explicitly turn off
Build; use `# blossom:runtime` to do that. Repeated markers are accepted.

### Preview and round-trip

`--dry-run` includes Build changes in the plan. `env_var:pull` writes these
blocks so a later push preserves both values and Build settings.

## Output and files

Output and the Activity name keys only, never values. The input file can
be Git-tracked, including in a local-only secrets repository; no override
flag or temporary copy is needed. A deploy applies the new values:

    blossom environment:deploy --id environment-100
