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

# Cloud Push

> Push your GeoEngine worker to the cloud so your whole team can run it without a local setup

`geoengine push` publishes a previously-applied production worker image to Nika's cloud registry. Once pushed, team members can run the worker directly from their QGIS or ArcGIS Pro plugin — without needing Docker, a terminal, or a local GeoEngine setup.

***

## Prerequisites

* GeoEngine installed and authenticated (`geoengine auth login`)
* A production apply completed: `geoengine apply` (without `--dev`) — dev builds cannot be pushed
* Recommended: local checks pass with `geoengine lint` and `geoengine test`

***

## Workflow

### Step 1: Apply in Production Mode

From your worker directory, bump the version in `geoengine.yaml` if needed, then run the local checks:

```bash theme={null}
geoengine lint
geoengine test
```

Then run a production apply:

```bash theme={null}
geoengine apply
```

This builds a versioned image and saves a config snapshot. Dev builds (`--dev`) are not eligible for push.

### Step 2: Push to the Cloud

```bash theme={null}
geoengine push [--id <worker-id>] [--tag <local-tag>] [--tenant <tenant>]
```

| Flag                | Description                                                                                                |
| ------------------- | ---------------------------------------------------------------------------------------------------------- |
| `--id <worker-id>`  | Worker UUID to push. Defaults to the worker in the current directory via `geoengine.lock`.                 |
| `--tag <local-tag>` | Local tag to push. Defaults to the most recently applied production `local_tag`.                           |
| `--tenant <tenant>` | Tenant to publish under. Defaults to your owned tenant, or prompts when more than one tenant is available. |

Run from your worker directory without any flags to push the latest production version:

```bash theme={null}
geoengine push
```

GeoEngine confirms the local tag and semantic version, uploads the container image to the cloud registry, and registers it in the selected workspace.

### Step 3: Available to Your Team

After a successful push, team members will see the worker in their QGIS or ArcGIS Pro GeoEngine plugin and can run it through the cloud without installing anything locally.

***

## Notes

* Only production images (from `geoengine apply` without `--dev`) can be pushed. If you've only run `geoengine apply --dev`, run `geoengine apply` first.
* If `local_tag` is not set in `geoengine.yaml`, production apply prompts to use the semantic `version` as the local tag.
* If you have access to multiple tenants, use `--tenant` to target a specific one.
* Use `geoengine workers` to see the current applied tag for each worker (`LATEST TAG` column).
