desk machine create
See machine command availability before using this command.
Provision a native Linux host on Vultr.
Install OpenSSH locally and have an SSH public key available. The matching private key must be available through your SSH agent or SSH configuration. Desk sends only the public key to Vultr.
Set VULTR_API_KEY, supply --vultr-api-key-file, or store the token at ${DESK_HOME:-$HOME/.desk}/credentials/vultr-api-key with private permissions. Keep the file outside project directories you pack. Tokens are not saved in machine records.
Choose region, plan and OS IDs from Vultr. Use a Linux image supporting cloud-init; Ubuntu 24.04 is the initial target image for validation. Creating a machine incurs Vultr charges.
desk machine create devbox \ --driver=vultr \ --vultr-region=REGION_ID \ --vultr-plan=PLAN_ID \ --vultr-os=OS_ID \ --pubkey="$HOME/.ssh/id_ed25519.pub" \ --user=deskDesk creates a non-root login user with passwordless sudo, installs tar, curl, certificates and tmux, then waits for SSH readiness. The default timeout is ten minutes; change it with --timeout=15m.
Vultr receives base64-encoded cloud-init user data, following its documented provisioning mechanism.
Recover an interrupted creation
Section titled “Recover an interrupted creation”desk machine create devbox --resumeThe saved provider ID is reused. Region, plan, OS, public key and login user cannot be changed during resume. Repeat the API-key-file flag if you used one.
If the original create response was lost, Desk cannot know whether Vultr created the VM. Inspect the Vultr console before retrying. Recover the matching instance explicitly:
desk machine create devbox --resume --vultr-instance-id=INSTANCE_IDDesk checks the instance label and region against the saved creation. It never automatically repeats a create request. Instances remain billable during failed preparation; use the Vultr console to delete an unwanted instance and verify its removal. This version does not implement cloud deletion.