> 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/civo/launch-instance.md).

# launch-instance

Launch a single service instance into an existing network, optionally with a public IP and an extra data volume. The Rumi application itself is deployed onto the worker by the controller afterwards.

## Syntax

```bash
rumi cloud civo launch-instance \
  --api-key <token> \
  --region <region> \
  --network <network> \
  --size <size> \
  --name <name> \
  [options]
```

## Options

| Option                    | Short | Description                                                           | Default                                                    |
| ------------------------- | ----- | --------------------------------------------------------------------- | ---------------------------------------------------------- |
| `--api-key`               | `-k`  | The Civo API token to use (or set `CIVO_API_TOKEN`)                   | Required                                                   |
| `--region`                | `-r`  | The Civo region in which to create the instance (e.g. `FRA1`)         | Required                                                   |
| `--network`               | `-n`  | The name of the network in which to create the new instance           | Required                                                   |
| `--keyPair`               | `-K`  | The name of the SSH key to associate with the new instance            | `rumi`                                                     |
| `--size`                  | `-s`  | The size of the service instance to launch (e.g. `g4s.xsmall`)        | Required                                                   |
| `--publicIP`              | `-i`  | Whether to assign a public IP to the instance                         | `false`                                                    |
| `--zone`                  | `-z`  | The hosted zone to add this instance's DNS entry to                   | `rumi.local`                                               |
| `--name`                  | `-a`  | The name of the service instance to launch                            | Required                                                   |
| `--nameInZone`            | `-o`  | The zone name of the service instance to launch                       | `null` (the instance name is used as the name in the zone) |
| `--additionalNamesInZone` | `-l`  | Additional names to add to the zone for this service instance         | `null` (no additional names are added)                     |
| `--vsize`                 | `-v`  | The size, in GiB, of the additional (non-boot) volume on the instance | `0`                                                        |

## Example

```bash
rumi cloud civo launch-instance \
  --api-key $CIVO_API_TOKEN \
  --region FRA1 \
  --network my-cloud \
  --keyPair rumi \
  --size g4s.xsmall \
  --name myapp \
  --publicIP \
  --vsize 20
```

## Notes

* Use [list-instance-sizes](/rumi-cli/commands/cloud/civo/list-instance-sizes.md) to discover valid `--size` values.
* The instance is registered in the `--zone` (default `rumi.local`) on the bastion's DNS so the rest of the fleet can resolve it by name.
* `--vsize 0` attaches no additional volume; a positive value attaches a separate data volume of that size in GiB.

## See Also

* [terminate-instance](/rumi-cli/commands/cloud/civo/terminate-instance.md)
* [list-instances](/rumi-cli/commands/cloud/civo/list-instances.md)
* [list-instance-sizes](/rumi-cli/commands/cloud/civo/list-instance-sizes.md)
