> For the complete documentation index, see [llms.txt](https://docs.rumi.systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rumi.systems/rumi-cli/commands/cloud/hetzner/deploy.md).

# deploy

Deploy a Rumi system (a XAR) to a provisioned environment. The XAR is staged on the bastion and uploaded to the admin node's agent, which deploys it onto the service workers.

## Syntax

```bash
rumi cloud hetzner deploy \
  --api-key <token> \
  --network <network> \
  --key-pair <keypair> \
  --xar <path> \
  [options]
```

## Options

| Option       | Short | Description                                                 | Default  |
| ------------ | ----- | ----------------------------------------------------------- | -------- |
| `--api-key`  | `-k`  | The Hetzner Cloud project API token (or set `HCLOUD_TOKEN`) | Required |
| `--region`   | `-r`  | The Hetzner location the network is in                      | `fsn1`   |
| `--network`  | `-n`  | The name of the environment to deploy into                  | Required |
| `--key-pair` | `-K`  | The SSH key pair to reach the bastion                       | Required |
| `--xar`      | `-x`  | The path to the XAR system to deploy                        | Required |

## Example

```bash
rumi cloud hetzner deploy \
  --api-key $HCLOUD_TOKEN \
  --network my-cloud \
  --key-pair rumi \
  --xar ./my-app.xar
```

## Notes

* The bastion must be running (it stages and uploads the XAR).
* Set controller properties before or after deploy with [configure](/rumi-cli/commands/cloud/hetzner/configure.md).

## See Also

* [provision](/rumi-cli/commands/cloud/hetzner/provision.md)
* [configure](/rumi-cli/commands/cloud/hetzner/configure.md)
* [add-proxy](/rumi-cli/commands/cloud/hetzner/add-proxy.md)
