Deploy an instance
The deploy page is step 2 of 2: you arrive with a machine already chosen and decide what runs on it. Its header reads Configure & Deploy, and Back to GPUs returns you to the marketplace without losing anything.
The form, field by field
Offer
The offer is not a form field — it comes in from the marketplace and is shown as a summary card at the top: GPU model, slice size, VRAM per card, location and hourly price. It is fixed for this deploy. To change the machine, go back and pick another card.
Two states replace the form instead of showing it:
| What you see | Why |
|---|---|
| "No GPU selected" | You opened the page without coming through the marketplace |
| "That offer is gone" | The offer was withdrawn from the catalog between selection and now |
Template
A grid of template cards, each checked against the machine you chose. Incompatible templates are dimmed and unclickable, and the first compatible one is preselected. The picker lists the curated templates plus, if you arrived by pressing Launch in the gallery, that template pinned at the front. See Choosing a template.
Disk
A slider, with the current value shown above it in GB or TB.
| Minimum | 10 GB |
| Maximum | The host machine's disk, shown under the slider as "Max N on this machine" |
| Step | 10 GB |
| Default | 50 GB |
The API accepts disk_gb anywhere from 10 to 20,000, but the request is rejected if you ask for more than the chosen machine physically has, and the error tells you that machine's ceiling.
Size this deliberately. The disk is what you pay for while the instance is stopped, at the per-GB-per-month rate printed under the slider, and it cannot be resized later — a bigger disk means a new instance.
SSH key
A dropdown of the SSH keys on your account, defaulting to No key (web terminal only). Add key next to it opens the same dialog as the SSH Keys page, so you can paste a public key without leaving the form.
SSH keys belong to you, not to your organization: teammates deploying from the same organization each attach their own. The key is installed at launch, so adding a key afterward does not reach an instance that is already running — the connect command on the instance page authenticates with whatever you attached here.
Leaving it on No key launches the instance with no authorized key at all, which means no ssh session. Only choose it when the template gives you a browser entry point, such as a jupyter template.
Label
Optional free text, up to 64 characters, for telling instances apart later — llama-finetune rather than a UUID prefix. Without one, the console falls back to the first eight characters of the instance id. The label is metadata only; nothing inside the container sees it.
Environment overrides
The console form does not expose these. The API does: env_overrides on POST /v1/instances takes a list of {key, value} pairs that override the template's declared environment by key, which is how you fill in a template's blank secret without editing the template.
Three rules apply:
- Your value wins over the template's value for the same key.
- An entry with no value is dropped rather than set to an empty string.
- The platform's own variables always win over yours. You cannot shadow
JUPYTER_TOKENorGPU_COUNT.
See Environment variables and Instances API.
The request
Everything above lands in one call:
{
"offer_id": "e1c0…",
"template_id": "9b74…",
"disk_gb": 100,
"label": "llama-finetune",
"ssh_key_id": "3f21…",
"env_overrides": [{ "key": "HF_TOKEN", "value": "hf_…" }]
}
label, ssh_key_id and env_overrides are optional; the first three fields are not.
Before the button will work
The Deploy instance button stays disabled while any of these is true:
| Condition | What to do |
|---|---|
| Balance is zero or below | Add credits. Admins get an Add credits shortcut in the panel; members are told to ask an admin |
| The selected template is incompatible with the machine | Pick another template, or another GPU |
| No template is selected | Pick one |
| A deploy is already in flight | Wait — the button reads "Deploying…" |
After you press deploy
- The offer is locked and re-checked. If it is no longer available, the deploy fails here and nothing else runs.
- The disk, template and SSH key are validated, then your balance is checked. It has to cover one hour of the instance — GPU plus the disk you picked — not merely be above zero.
- Only then is your unit subtracted from every shape on that machine that overlaps it, and the instance is created in
creating. Nobody can take your GPUs; the same offer stays rentable if the machine still has free ones. The console moves you to its page with the message "Deploying — your instance is spinning up". - The page polls itself every three seconds while the instance is in a transitional state, and the hint on screen reads "Provisioning your machine — usually under 20 seconds".
- When the instance reaches
running, the connect details appear — the ready-madessh -p <port> <user>@<host>command, and forjupytertemplates an Open JupyterLab button. Until then the tab says connection details appear once the instance is running.
Billing does not start when you press the button. The meter starts when the workload reports running, so the provisioning window costs nothing, and so does a deploy that never gets there.
When a deploy fails
| Error | Meaning | What the console does |
|---|---|---|
| Offer unavailable | Someone claimed that slice first | Sends you back to the marketplace |
| Insufficient balance | The balance does not cover an hour of this instance | Refreshes the balance and prompts for credits |
| Disk too large | disk_gb exceeds the host machine's disk | Reports the machine's ceiling |
| Template not found | The template id is unknown or no longer active | Shows the message inline |
| SSH key not found | The key id is not one of yours | Shows the message inline |
| Machine not VM-capable | A vm template on a machine that cannot run VMs | Shows the message inline |
| Machine in maintenance | The machine is booked offline too soon to start on | Names the date and sends you back to the marketplace |
A deploy refused at any of the steps above creates nothing and charges nothing. A deploy that gets past them and then fails while provisioning is different: the instance row exists, lands in error, and is cleaned up automatically — it never bills, because the meter starts when the workload reports running and this one never did. Full list in Error codes.
There is no confirmation step after this page. From the moment the instance reaches running you are billed per second, and stopping it later still bills the disk. Read Stop vs destroy before you walk away from one.