Skip to main content

Create a virtual machine

Spin up a Linux virtual machine from the console in about five minutes. This page walks the Create Instance wizard end-to-end — sizing, OS, storage, network, access — one screen per step.

Before you start

  • An account on console.thewahda.com — see Sign up & first login →.
  • Enough room in the project for the VM. The wizard shows live usage of the project's compute and storage allocation on the right as you build; if you're bumping against it, raise it →.
  • An SSH public key. Don't have one? The wizard can generate one for you in Step 3.

Concepts

ConceptWhat it is
ProjectThe tenant boundary. Instances, networks, volumes, and IPs all live inside one project.
Availability zoneA failure-isolated location inside a region. Pick the default unless you're explicitly running multi-AZ.
SpecificationA pre-defined VM size — vCPU + memory + included internal-network bandwidth.
ImageA bootable OS template. Ubuntu, AlmaLinux, Rocky Linux, CentOS Stream, and Kali are in the public catalog; you can also upload your own.
System DiskThe root disk created at launch, attached as a persistent volume.
NetworkA private network inside your project, optionally connected to the internet via a router.
Security GroupA firewall ruleset attached to the VM. Defaults block all inbound traffic.
Key PairThe SSH keypair installed at boot so you can log into the VM.

1. Open the wizard

From the left navigation: Compute → Instances. The list shows every VM in the current project.

Click Create Instance to launch the wizard.

Click Create Instance in the top-left of the table.


2. Step 1 — Base Config

The longest step of the wizard. You're picking the physical shape of the VM: zone, size, OS image, and root disk. The stepper at the top always shows where you are; the usage panel on the right updates live as you make choices.

Fresh Step 1: stepper at top, live usage panel on the right, form waiting to be filled.

Fill it in top to bottom.

a) Available Zone

Leave the default (e.g. in-north-az1). Pick a specific AZ only if you need to pin location for multi-AZ HA.

b) Specification (flavor)

Each row is a pre-defined size — vCPU, memory, included internal-network bandwidth. Click the radio on the row to select it. The Selected chip below the table reflects your pick, and the usage panel on the right updates so you can see how the shape fits your project's current allocation.

For a first VM, m1.small (1 vCPU / 2 GB RAM) is a good starting point.

Flavor (typical)vCPURAMUse case
m1.tiny2512 MBTrial / smallest workload
m1.small12 GBSingle-service container, light web app
m1.medium24 GBWeb app, CI runner, small worker
m1.large48 GBProduction app server, small DB

c) Start Source & Operating System

Leave Start Source on the default Image tab. The other tabs let you boot from an existing snapshot or volume.

Under Operating System, click the OS family icon (Ubuntu, AlmaLinux, Rocky, CentOS Stream, etc.), then click the row of the image you want in the table below. We recommend the latest LTS for Linux.

:::tip Click anywhere on the row Name, Project, System Version — any cell selects the image. The blue radio dot on the left appears once selected. :::

d) System Disk

FieldSet it to
Boot From VolumeYes - Create a new system disk (default). Gives the VM a persistent root disk.
System Disk → TypeSSD-GP1 (general-purpose SSD).
System Disk → SizeAt least 20 GiB. The image sets the minimum; the wizard rejects anything smaller.
Deleted with the instanceLeave checked. Uncheck only if you want the root volume to survive instance deletion.
Data Disk (optional)Click Add Data Disks for additional persistent volumes.
Count1 — bump higher to launch identical copies of this configuration.

When everything is filled you'll see the whole step summarized like this — flavor selected, image selected, disk type + size set — and the Next: Network Config button lights up in the bottom-right:

m1.small + Ubuntu 22.04 LTS + SSD-GP1 20 GiB. Next: Network Config is active.

Click Next: Network Config.


3. Step 2 — Network Config

Attach the VM to a private network inside your project. On landing you see the empty form with tabs for Current Project / Shared / External / All networks and the Security Group section further down.

Step 2 landing. Pick one network row, then attach a security group below.

Tick the checkbox on the network row you want; the subnet auto-selects from the network's first subnet.

Network selected. Virtual LAN is automatically assigned; scroll down to tick a security group.
FieldWhat to choose
NetworkA private network inside your project. Most projects come with a demo-network-vpc created automatically.
Virtual LANInherited from the network's first subnet — change only if you have multiple.
Security GroupsThe firewall ruleset(s) attached to the VM. Defaults block all inbound traffic. To SSH in, attach a group that allows port 22. See Security groups →.

Click Next: System Config.


4. Step 3 — System Config

Give the VM a name and pick how you'll log in.

Step 3 lands empty: name, login type, and key-pair selection are all required.
FieldWhat to enter
NameA short hostname — letters, numbers, hyphens. Example: web-01.
Login TypeKeypair (recommended) or Password. Production VMs should always use keypairs.
KeypairPick an existing key pair from your project, or click Create Keypair to generate one right here.
Advanced Options (optional)Expand to add cloud-init user data — a script that runs on first boot to install packages, write config, or create users.

:::caution Download your key If you generate a new key pair in the browser, you're shown the private key only once. Download it and store it somewhere safe (a password manager works). Without it you can't SSH into the VM later. :::

Click Next: Confirm Config.


5. Step 4 — Confirm Config

Review every choice from the previous three steps. Look for typos in the name, the right OS image, the right network. Anything wrong → Previous to fix. Everything good → Create.


6. Wait for the VM to come up

The wizard closes and your VM appears in the Instances list. Its status moves through Building → Active. Initialization usually takes 30–90 seconds.

When status is Active, copy the VM's IP Address from the list.


7. Connect

ssh -i ~/Downloads/my-key.pem ubuntu@<vm-ip>

The default user depends on the image:

Image familyDefault user
Ubuntuubuntu
AlmaLinuxalmalinux
Rocky Linuxrocky
CentOS Streamcloud-user
Kalikali

For images you uploaded yourself, the default user is whatever the image bakes in — check the image's details page for the OS Admin field. Windows uploads use RDP on port 3389 with the password set in Step 3.

If you can't reach the VM from your laptop, the most common cause is the security group blocking port 22. See Security groups → for the recommended SSH-only ruleset.


Next steps