# Quick Start

In this quick start guide, you will create and access your first instance (sometimes referred to as a virtual machine or VM) on your dedicated Hypervisor. 

## Prerequisites

Before you create an instance on a Dedicated Hypervisor, make sure the following requirements are met:

- **Exoscale account access**  
  You need access to an Exoscale organization where Dedicated Hypervisors have been provisioned.

- **Assigned Deployment Target**  
  Exoscale must have provisioned your dedicated resources and assigned a [Deployment Target]({{< ref "/product/compute/dedicated-hypervisors/overview/#deployment-target" >}}) to your organization. Without an assigned Deployment Target, you cannot launch instances on your Dedicated Hypervisors.

- **Exoscale CLI**  
  Install the latest version of the Exoscale [CLI]({{< ref "/tools/command-line-interface/" >}}) for macOS, Linux, or Windows.

- **API Key**  
  Configure the CLI with your Exoscale API credentials by running `exo config`.

- **Familiarity with Compute Instances**  
  Dedicated Hypervisor instances are created and managed like standard Compute Instances. If you are new to Exoscale Compute, follow the [Compute Quick Start guide]({{< ref "/product/compute/instances/quick-start/" >}}).

- **SSH access**  
  To connect to Linux instances, set up an SSH key pair by following the [SSH key pairs guide]({{< ref "/product/compute/instances/how-to/ssh-keypairs/" >}}). This step can be skipped for Windows instances.
  
- **Network access**  
  Configure the required network access with [Security Groups]({{< ref "/product/networking/security-group/" >}}) and note the relevant Security Group IDs.
  

## First Steps via CLI

### Confirm deployment target
A [Deployment Target]({{< ref "/product/compute/dedicated-hypervisors/overview/#deployment-target" >}}) is a virtual abstraction layer that allows you to provision Compute Instances onto dedicated hypervisors.

Run the following command with valid credentials for the target account, be sure to use the correct [Zone]({{< ref "/platform/dc-zones/#building-around-the-zone-concept" >}}):

```bash
exo api list-deploy-targets  --zone=ch-gva-2 
```

  <details>

  <summary>Example output</summary>

  

  ```bash
  exo api list-deploy-targets  --zone=ch-gva-2 
  {
    "deploy-targets": [
    {
      "description": "dedicated resources group",
      "id": "c9a64f12-3ba7-4c19-bd93-61f2d84c3e55",
      "name": "Dedicated-ch-gva-coe",
      "type": "dedicated"
    }
  ]
  }

  ```

  </details>


### Confirm current instances on your Deployment target
  
Run the following command to view the current allocation of your cluster, replacing the DeployTarget with the ID returned in the previous command. Ensure you select the correct [Zone]({{< ref "/platform/dc-zones/#building-around-the-zone-concept" >}}).

```bash
exo api get-deploy-target c9a64f12-3ba7-4c19-bd93-61f2d84c3e55 --zone=ch-gva-2

```

<details>
<summary>Example output</summary>

```bash

exo api get-deploy-target c9a64f12-3ba7-4c19-bd93-61f2d84c3e55 --zone=ch-gva-2

{
  "allocation": [
    {
      "hypervisor": {
        "id": "b3c8f2a1-6d4e-419a-9e7b-c3f2b8a1d4e0",
        "name": "virt-hv416.gv2.p.exoscale.net"
      },
      "instances": [
        {
          "id": "7f9a1c3e-5b8d-426f-bd02-a4e7c1f8d3b6",
          "name": "stg-mock-lon-core-gw-vpn-002"
        },
        {
          "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
          "name": "prod-k8s-nyc-worker-eth-005.internal.mock-corp.com"
        }
      ]
    },
    {
      "hypervisor": {
        "id": "f8e7d6c5-b4a3-4210-9f8e-7d6c5b4a3f2e",
        "name": "virt-hv731.gv2.p.exoscale.net"
      },
      "instances": [
        {
          "id": "ad4c5e6f-7a8b-49c0-be1f-2a3b4c5d6e7f",
          "name": "node-atlas-1234.c-cloudy-river-9876.ams.taur.mockmanaged.net"
        },
        {
          "id": "6b7c8d9e-0f1a-42bc-ad3e-4f5a6b7c8d9e",
          "name": "prod-k8s-nyc-worker-solana-002.internal.mock-corp.com"
        }
      ]
    }
  ],
  "description": "dedicated resources group",
  "id": "c9a64f12-3ba7-4c19-bd93-61f2d84c3e55",
  "name": "Dedicated-ch-gva-2",
  "type": "dedicated"
}
```
</details>

### Create Your Instance

With the above information, you will be able to launch your instance using the CLI:

```bash
exo compute instance create testInstance001  --deploy-target c9a64f12-3ba7-4c19-bd93-61f2d84c3e55 --security-group 2b1ed953-0ce2-4662-9a74-c9f26b310f38
```

<details>

<summary>Example output</summary>

  

```bash
exo compute instance create testInstance001
 ✔ Creating instance "testInstance001"... 24s
┼─────────────────────────────────────────┼──────────────────────────────────────┼
│            COMPUTE INSTANCE             │                                      │
┼─────────────────────────────────────────┼──────────────────────────────────────┼
│ ID                                      │ 8be57fff-10b9-4a15-a20d-6493b517324d │
│ Name                                    │ testInstance001                      │
│ Creation Date                           │ 2026-06-19 12:47:29 +0000 UTC        │
│ Instance Type                           │ standard.medium                      │
│ Template                                │ Linux Ubuntu 22.04 LTS 64-bit        │
│ Zone                                    │ ch-gva-2                             │
│ Anti-Affinity Groups                    │ n/a                                  │
│ Deploy Target                           │ c9a64f12-3ba7-4c19-bd93-61f2d84c3e55 │
│ Security Groups                         │ testsecuritygroup                    │
│ Private Instance                        │ No                                   │
│ Private Networks                        │ n/a                                  │
│ Elastic IPs                             │ n/a                                  │
│ Public IP                               │ inet4                                │
│ IP Address                              │ 92.39.60.52                          │
│ IPv6 Address                            │ -                                    │
│ SSH Key                                 │ -                                    │
│ Disk Size                               │ 50 GiB                               │
│ State                                   │ running                              │
│ Labels                                  │ n/a                                  │
│ Secure Boot                             │ false                                │
│ Tpm                                     │ false                                │
│ Reverse DNS                             │                                      │
│ Application-Consistent Snapshot enabled │ false                                │
┼─────────────────────────────────────────┼──────────────────────────────────────┼
```

</details>



In this example, we have added [Security Group]({{< ref "/product/networking/security-group/" >}}), but you can add further options such as [Anti-Affinity Groups]({{< ref "/product/compute/instances/how-to/anti-affinity/" >}}) or [Cloud-Init and User Data]({{< ref "/product/compute/instances/how-to/cloud-init-user-data/" >}}).

### Check the instance is running where you intended

Run the following command to check the instance had landed on your dedicated hypervisor. 

```bash
exo api get-deploy-target c9a64f12-3ba7-4c19-bd93-61f2d84c3e55 --zone=ch-gva-2
```

<details>
<summary>Example output</summary>

```bash

exo api get-deploy-target c9a64f12-3ba7-4c19-bd93-61f2d84c3e55 --zone=ch-gva-2

{
  "allocation": [
    {
      "hypervisor": {
        "id": "b3c8f2a1-6d4e-419a-9e7b-c3f2b8a1d4e0",
        "name": "virt-hv416.gv2.p.exoscale.net"
      },
      "instances": [
        {
          "id": "7f9a1c3e-5b8d-426f-bd02-a4e7c1f8d3b6",
          "name": "stg-mock-lon-core-gw-vpn-002"
        },
        {
          "id": "8be57fff-10b9-4a15-a20d-6493b517324d",
          "name": "testInstance001"
        },
        {
          "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
          "name": "prod-k8s-nyc-worker-005.internal.mock-corp.com"
        }
      ]
    },
    {
      "hypervisor": {
        "id": "f8e7d6c5-b4a3-4210-9f8e-7d6c5b4a3f2e",
        "name": "virt-hv731.gv2.p.exoscale.net"
      },
      "instances": [
        {
          "id": "ad4c5e6f-7a8b-49c0-be1f-2a3b4c5d6e7f",
          "name": "node-atlas-1234.c-cloudy-river-9876.ams.mockmanaged.net"
        },
        {
          "id": "6b7c8d9e-0f1a-42bc-ad3e-4f5a6b7c8d9e",
          "name": "prod-k8s-nyc-worker-002.internal.mock-corp.com"
        }
      ]
    }
  ],
  "description": "dedicated resources group",
  "id": "c9a64f12-3ba7-4c19-bd93-61f2d84c3e55",
  "name": "Dedicated-ch-gva-2",
  "type": "dedicated"
}
```

</details>

If you review the output, we can see that this instance is now running on virt-hv416.gv2.p.exoscale.net in the Geneva Zone.

### Access the Instance

- **SSH Access**  
  Now your instance is running, you can access and manage it using SSH as appropriate using the SSH Key you set up during the Prerequisites.
- **RDP Access**  
  For non domain joined Windows instances, you can get the password for the Local user "Administrator" using the following Exoscale CLI command `exo compute instance reveal-password InstanceID -z ZONE`.


## First Steps via Portal 

Currently, this product cannot be used via the Exoscale Portal, it's CLI only.

## Next Steps 

Learn more about the Exoscale Dedicated Hypervisor architecture and concepts in the
[Overview]({{< ref "/product/compute/dedicated-hypervisors/overview" >}}). For advanced usage check the
[How-To]({{< ref "/product/compute/dedicated-hypervisors/how-to" >}}) section.

