Create a VM
Every VM is provisioned from one form — Compute → Create VM. It reads top to bottom: name → region → compute → operating system → access → billing, with an advanced section for cloud-init, extra disks, and labels. A live quote tracks every change.
Region
Pick a datacenter — compute is DC-local. Each region card shows its live
free-vCPU headroom; today that's us-dal-1 (Dallas).
Compute: CPU or GPU
A top-level CPU ⇄ GPU toggle swaps the hardware grid:
- CPU — choose a CPU class: Intel Cascade Lake or AMD Milan. Each card shows live availability.
- GPU — choose a GPU model (NVIDIA RTX 4090 today, with more models on the way) for whole-card PCIe passthrough — a dedicated physical GPU, not a time-sliced fraction. Picking a GPU also pins the CPU pool it lives on.
Below the hardware grid, sliders dial cores, memory, boot disk (and GPU count in GPU mode). The sliders are capacity-aware: their max is the largest VM the most-free node can actually schedule, so you can't size something that won't place.
Sizing rules the form enforces (the server enforces them too):
- CPU VMs cap at 4 GiB RAM per vCPU — want more RAM, add cores.
- GPU VMs start at 4 vCPU / 8 GiB; the GPU's CPU + RAM are dedicated, not oversubscribed.
Example shapes
| Shape | Config | $/mo (no IPv4) | $/hr |
|---|---|---|---|
| tiny | 1 vCPU · 1 GB · 10 GB NVMe | $4.25 | $0.0058 |
| medium | 2 vCPU · 8 GB · 80 GB NVMe | $19 | $0.026 |
| large | 4 vCPU · 16 GB · 160 GB NVMe | $38 | $0.0521 |
| + GPU | any shape ≥ 4 vCPU / 8 GB + 1× RTX 4090 | +$440/mo | +$0.60/hr |
Live per-unit rates (Intel Cascade Lake baseline):
- vCPU — $2.50/mo on Cascade Lake, $3.00/mo on AMD Milan
- RAM — $1.25/mo per GiB
- NVMe boot disk — $0.05/mo per GiB
- RTX 4090 GPU — $0.60/GPU-hour (≈$440/mo) per card, on top of the vCPU + RAM you configure
- Public IPv4 — $2.00/mo per address (optional)
The right-rail quote runs on every change and shows the live per-second / monthly / monthly-prepaid cost.
Operating system
Pick a curated image — Ubuntu 24.04 / 22.04, Debian 12, Fedora — resolved server-side and served from the in-region image mirror at LAN speed. The advanced section also accepts a custom image URL (any HTTPS-reachable raw / qcow2 cloud image) or an existing disk to reuse as boot (see VM lifecycle).
Access: users & SSH keys
Add one or more login users. Each user has:
- a username (defaults to the image's distro user, e.g.
ubuntu), - an optional password — sent over TLS and hashed server-side (
$6$SHA-512) into cloud-init; never stored in plaintext, - passwordless sudo (on by default), and
- any of your registered SSH keys (set up under Developers → SSH keys).
Password auth (ssh_pwauth) is enabled only when a user has a
password, so the SSH-key-only default posture is unchanged. Toggle
public IPv4 here for inbound from the open internet (IPv6
is always-on).
Billing modes
Pick at create time. Switch hourly ↔ monthly later; mid-term changes prorate. Auto-renew only matters for monthly modes.
| Mode | Term | Discount | When to use |
|---|---|---|---|
| Hourly (default) | per-second | — | Short-lived VMs, CI, autoscaling. |
| Monthly · 1 mo | 30 d prepaid | 0% | Flat monthly bill without a long commit. |
| Monthly · 3 mo | 3 mo prepaid | 5% | Quarter-long workloads. |
| Monthly · 6 mo | 6 mo prepaid | 8% | Half-year commitments. |
| Monthly · 12 mo | 12 mo prepaid | 12% | Annual reservations on stable shapes. |
Monthly prepayment debits the wallet immediately. If the wallet can't cover the term, the create fails — top up first.
Networking
Every VM joins your project's private VPC and, by default, also gets a public NIC. The first VM in a project lazily provisions the VPC — that's why your first Create VM in a fresh project takes a few extra seconds.
- Public IPv6 — always-on and free; every VM gets a routable v6 address unless you mark it private-only.
- Public IPv4 — optional, $2/mo, opt-in at create time (you can't attach one post-create).
- Private only — opt out of the public NIC entirely for an air-gapped VM. No public IPv4 or IPv6; reachable only inside the project. Outbound NAT still works.
- Security groups — optionally attach security groups to lock down which project VMs can reach this one. None attached = talks freely within the project.
Create & track
Hit Create VM. A confirmation appears and you're taken to
your VM list, where the new row shows PROVISIONING →
STARTING → RUNNING. Typical end-to-end is ~90
seconds — longer the first time in a project (network bring-up) or for large
custom images. If provisioning fails, the resource is rolled back and any
prepaid wallet debit is refunded; the operation card explains why.
What's next
- VM lifecycle — start, stop, restart, resize, console, snapshot, clone.
- SSH keys — register reusable keys per project.
- Firewall rules — open ports beyond the default SSH/HTTP/HTTPS.
- Public IPv4 — pricing, default-deny posture.