Skip to content

Find and rent an instance

Open Capacity (/). It lists one row per offering, which you can filter by location, by cloud or home hosts, by the kind of IP, and by the least vCPUs, RAM and disk. Choose a row to open the offering’s own page (/offerings/OFFERING_ID).

The IP filter on Capacity, and --ip dedicated|shared on ghost catalog offerings, choose which address the list prices, orders by and offers:

  • Dedicated IP (dedicated, the default) is an address of the instance’s own: a cloud host’s address, or the gateway a home host gets by default.
  • Shared IP (shared) is a range of a shared address’s ports.
  • An offering without the address you chose is not listed, so a cloud offering whose hosts have no address left appears only under Shared IP.
  • With ghost, the price column and the cursor are that address’s.

The kinds of address are explained on Connect and networking.

Each row of Capacity has:

  • its size by its vCPUs, CPU model, RAM and disk;
  • its price per month for the chosen address: the base price, with the base price of the gateway a home host gets by default, or nothing more for a cloud host’s Shared IP;
  • its traffic price, a home host’s through that gateway;
  • its location with its provider under it, its host type as an icon, and its provider’s record, with each offering’s uptime.

Hover over the CPU model, the memory type or the disk size for the CPU’s full name and benchmark, the memory modules and their speed, and the disks.

ghost catalog offerings \
--mode cloud_routed \
--country SG \
--continent AS \
--provider gh-abcdefgh \
--min-vcpu 4 \
--min-ram 8GiB \
--min-disk 100GiB
Filter Takes
--mode home_gateway or cloud_routed, spelled as the catalog shows them; home-gateway and cloud-routed still work
--location A location slug from ghost catalog locations
--country, --continent An ISO two-letter country_code, a geographic continent_code
--provider A provider’s alias, such as gh-abcdefgh, or its UUID
--min-vcpu The least vCPUs
--min-ram, --min-disk A size in binary units, such as 512MiB, 8GiB or 1TiB
--ip dedicated or shared
--for-backup, --host See Create an instance from a backup
  • For --min-ram and --min-disk, M, G and T stand for MiB, GiB and TiB, so 8G is 8GiB, and a bare number is GiB. Decimal units such as 8GB are refused.
  • The server applies every filter before it cuts the list. It refuses an unknown --location, and a --country or --continent that no location is in, instead of matching nothing.
ghost catalog locations --country US
ghost catalog offerings --continent EU

Use a location slug from ghost catalog locations in provider configuration and catalog filters; display_name is its human-readable UI label. Locations also include ISO two-letter country_code and geographic continent_code values. US is a country in continent NA; EU denotes geographic Europe. The same geography filters narrow the location list.

ghost catalog offerings --min-vcpu 4 --limit 50
ghost catalog offerings --min-vcpu 4 --limit 50 --after 3100000.of2_F95QS_EuMsVz4IG5EulOew
  • Offerings are listed cheapest first by their listed price (the base price plus a home offering’s default gateway base price, or with --ip shared the Shared IP’s), at most 500 at a time; --limit lists fewer.
  • When a list comes back full, the CLI says on standard error how to get the next one, with the same filters.
  • --after takes the last offering’s listed price in micro-USD and its ID, joined by a dot.

Every host offers one ladder of sizes, each with twice the RAM and disk of the one before:

vCPUs RAM and disk, as a multiple of the 2-vCPU size with the least RAM
1 ¼ (the smallest size)
1 ½
2 1
2 2
4 4
8 8
16 16, and so on up to the largest VM the host takes
  • A mid-step gives more CPU without more memory. Between two sizes of N and 2N vCPUs, from the 2-vCPU size with 2× upward, a mid-step has 2N vCPUs with the N-vCPU size’s RAM and disk, where the 2N-vCPU size exists: 4 vCPUs with the RAM of the 2-vCPU size that has 2×, 8 vCPUs with the 4-vCPU size’s, and so on.
  • A host whose largest VM has 1 vCPU offers three 1-vCPU sizes, with 1, 2 and 4 times the smallest one’s RAM.
  • A size with less than the platform’s least RAM for a VM, currently 768 MiB, is left out: a host with less than 3 GiB of RAM per logical CPU does not offer the smallest 1-vCPU size, and one with less than 1.5 GiB not the second one either.
  • An instance boots with its size’s RAM less 64 MiB, which the VM itself uses on its host (QEMU and its devices): an offering of 4 GiB gives its instance 4 GiB less 64 MiB.
  • The catalog lists only the sizes a host has room for now.
  • A cloud host with one free public address left lists only the largest size that fits and the mid-step with the same RAM.
  • An offering is told by its vCPUs, RAM, disk, and prices; ghost prints a size by its vCPUs alone, such as 4 vCPU, a mid-step’s too.
  • Its base price follows its RAM; a mid-step’s is 1.5 times that of the size with the same RAM.
  • The price at full CPU use follows the number of vCPUs alone, so a mid-step’s is that of the next size.
  • With --json an offering also carries cpu_tier, how the platform accounts for what a vCPU reserves.

Copy the offering ID, of2_ and 22 more letters, digits, -, or _, and the image’s slug, such as debian-13, or its UUID from the response.

  • An offering ID names a configuration group and its exact terms: hardware, prices, and SLA. It is not one physical host; the backend chooses an available matching host during creation.
  • Once the provider changes those terms, or no host with them takes new instances, the ID no longer works: creation is refused with offering_unavailable, and the catalog lists the current offerings with their new IDs.
  • ghost catalog offering (GET /v1/catalog/offerings/{offering_id}) reads one offering while it is listed.

An offering’s own page (/offerings/OFFERING_ID) shows:

  • its hardware with RAM and PCIe details, and its drives (each host’s where their models differ);
  • a matched CPU benchmark estimate when data exists;
  • which backups its hosts have room for;
  • its network readings and gateway RTT;
  • its prices;
  • its provider with its rating where it has one, its full reliability record and spend-weighted reviews, which the provider’s page (/providers/PROVIDER_ID) shows too.

Scores are comparisons, not a guarantee of application performance. Missing data is shown as unknown.

Public provider reliability reports cover completed UTC days in the trailing 365-day window.

  • They include renter-observed uptime after platform-wide incident overlap is removed, plus the count and percentage of abandoned instances.
  • The observation duration and distinct-instance sample size are always returned, so a new provider is not presented as equivalent to a long-running one. An empty or small sample is not equivalent to an established reliability record.

Network readings come from each host testing itself against every platform test location, using one randomly picked server per location, once after enrollment and then about every three days.

  • A listing shows the best download, upload, and one-way latency (half the measured round trip) across its hosts with the measurement time.
  • Each host’s network tests page (/hosts/HOST_ID/network), linked from the offering’s page, lists each location’s latest result and the server that took it.
  • A reading marked with a plus (at_limit, such as 1 Gbit/s+) reached the test server’s own uplink limit, so the host may be faster.
  • Unknown (null) means that direction could not be measured or the result has expired; it is not zero.

Gateway RTT is measured from an existing public gateway to its instance through the tunnel. It is not latency from your own computer. Hosts without a current sample, or instances that block ICMP echo, show no measurement.

  1. On the offering’s page, go to Rent it.
  2. Pick an operating system, or a backup from the list, which names each backup’s restore charge.
  3. Paste your SSH public key, or keep the saved keys the form offers, checked.
  4. For a home instance, choose the gateway tier and location.
  5. Check the costs the form shows, then send it.

Beside the form is the ghost instance create command for what the form holds, which changes as you choose. The form shows the one-time creation fee, refunded if the creation fails unless you caused the failure, and the price per month, the traffic price and the balance reserved while the instance exists, for the gateway you chose.

When no host of the offering has room, the page says what is short, such as cores, memory or a free public address, and when a resting address is free again. A new instance opens its own page.

The gateway tiers and locations are explained on Connect and networking, and what creation costs on Pricing and billing.

Provide at least one SSH public key, or save keys on your account, which a creation installs unless you name others.

  • Repeat --ssh-key-file or --ssh-key to install more than one.
  • A key is one OpenSSH public key line of type ssh-ed25519, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, sk-ssh-ed25519@openssh.com, or sk-ecdsa-sha2-nistp256@openssh.com; DSA keys and certificates are refused.
  • Pass public keys only, such as the .pub file: ghost refuses a private key before it sends anything, and the website’s forms refuse a pasted private key. Paste the one-line public key from the .pub file.
  • How to log in once it runs: Connect with SSH.
Option Meaning
--image An image’s slug from ghost catalog images, such as debian-13, or its UUID
--hostname Optional; a lowercase RFC 1123 hostname
--name Optional; the name the website and ghost show the instance by, by the same rules. Without it the instance is named after its hostname
--startup-command A first-boot shell command
--startup-command-file A multiline first-boot shell program, instead of --startup-command
--cloud-init-file Raw cloud-init user data for advanced initialization; cannot be combined with either startup-command option
--gateway-tier, --gateway-location A home instance’s network; see Connect and networking
--backup A backup instead of --image; see Backups and restore

ghost checks a --cloud-init-file before anything is created:

  • a #cloud-config must be a YAML mapping, a #cloud-config-archive a list, and a #cloud-config-jsonp a JSON Patch array;
  • a script starts with #!, and a MIME multipart document needs a MIME-Version header;
  • without an SSH key, ghost warns when a #cloud-config sets no SSH key or password of its own.

Do not put secrets in files that you do not control.

What is checked before anything is created

Section titled “What is checked before anything is created”

The website’s rent form checks the SSH keys, the hostname and the first-boot command before sending anything. ghost instance create refuses at once a --hostname that is not a lowercase RFC 1123 hostname. Once it has read the offering, it refuses:

  • a --gateway-tier other than shared_ip given for a cloud offering, or one missing for a home one, whose tiers and prices the refusal lists;
  • a backup whose disk is larger than the offering’s root disk.

An offering that is no longer listed, or a tier the offering does not list now, gets only a warning there; the backend then decides whether it can still be rented. --compact prints none of the quote, and leaves the checks after the hostname’s to the backend.

With --wait, once the new instance’s kernel has started, ghost waits up to five minutes more for cloud-init in the instance to report how the first boot went.

  • It warns when cloud-init reported errors or finished degraded, listing its messages, or says that it has not reported yet.
  • --compact does not wait.
  • Repeating a creation with the same --idempotency-key returns the job of the first request, and ghost says so, with when that job was made: nothing new is charged. backup create and backup restore say the same of a repeat.

Creation remains in provisioning until the host sees the new instance’s operating system start and, for a home instance, its gateway reports a fresh WireGuard handshake; the instance’s billing starts then.

  • The job says what the host is doing, such as how much of the image has arrived. The creation step’s progress follows the download up to 80% and is 90% once the disk holds the image.
  • A home host keeps the catalog’s images downloaded ahead of time, so a creation or reinstall there rarely waits for its image.
  • An image that starts no operating system within five minutes fails the creation with guest_boot_timeout, which is not retried.
  • A new instance is not checked for reachability itself: a cloud instance only ever gets an address that passed its one-time check, and a home instance’s public address is its gateway’s.

A home instance uses one gateway. Its creation waits up to 15 minutes for the gateway to be created and up to 15 more for it to boot, since creating one can take the gateways’ cloud provider several minutes, and longer when its service is slow; --wait prints each wait once.

  • If the gateway is not created or does not become ready in that time, or does not report the handshake, the creation fails, and Gigahost orders no second one.
  • The job’s error then says in plain words what went wrong, that the creation charge is refunded, and that you can try again.
  • gateway_quota_exhausted means that no gateway capacity is available right now, so try again later.
  • While a gateway step waits for room among the gateways, the job says so and keeps trying.
  • A failed creation keeps its balance reserve, capacity, and address until its host has removed what the creation left there, which takes moments while the host is online. One that never reached its host holds nothing after the failure.
  • A home instance’s gateway is given up at the failure.
  • These steps survive backend or provider restarts.
  • What is refunded is under Refunds of a failed creation.