Find and rent an instance
Find an offering
Section titled “Find an offering”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).
ghost catalog locationsghost catalog offeringsghost catalog offering <OFFERING_ID>ghost catalog imagesghost catalog alone is ghost catalog offerings, and takes the same
filters, such as ghost catalog --min-vcpu 4. The catalog is public, so these
commands need no account key.
The IP filter
Section titled “The IP filter”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.
What a listing shows
Section titled “What a listing shows”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.
For reading, catalog offerings prints one line per offering:
- its ID, location, host mode and size;
- its monthly price from the base price to the price at full CPU use (for a home offering with its default gateway’s monthly base, as the website lists it);
- its traffic price per TiB (for a home offering through that same default
gateway, such as
$5.00/TiB); - the bandwidth limit with that address (
BANDWIDTH, such as200 Mbit/sorno limit); - how many hosts have room for it (
HOSTS), and its provider’s alias (PROVIDER).
The list shows each offering’s vCPUs and CPU model, its RAM and the hosts’
memory technology, such as DDR4, its disk with its RAID level, such as
25 GiB raid 1, its monthly prices, and its cheapest traffic rate.
Prices are shown to the cent, and an amount under two cents to the hundredth
of a cent without trailing zeros, such as $0.0016 or $0.007; --json has
every amount in micro-dollars and every field of every offering.
catalog offering shows one listed offering in full: its hardware and
storage, network readings, each gateway tier’s traffic price, monthly base and
bandwidth limit, backup limits, creation fee and balance hold. For a home
offering it lists every network option: a shared gateway at each location it
may be placed at, with the location’s distance from the host and its prices,
and a gateway of the instance’s own.
Filters
Section titled “Filters”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-ramand--min-disk,M,GandTstand for MiB, GiB and TiB, so8Gis8GiB, and a bare number is GiB. Decimal units such as8GBare refused. - The server applies every filter before it cuts the list. It refuses an
unknown
--location, and a--countryor--continentthat no location is in, instead of matching nothing.
Locations
Section titled “Locations”ghost catalog locations --country USghost catalog offerings --continent EUUse 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.
Paging through offerings
Section titled “Paging through offerings”ghost catalog offerings --min-vcpu 4 --limit 50ghost 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 sharedthe Shared IP’s), at most 500 at a time;--limitlists fewer. - When a list comes back full, the CLI says on standard error how to get the next one, with the same filters.
--aftertakes 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.
Which sizes are listed
Section titled “Which sizes are listed”- 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;
ghostprints a size by its vCPUs alone, such as4 vCPU, a mid-step’s too.
How a size is priced
Section titled “How a size is priced”- 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
--jsonan offering also carriescpu_tier, how the platform accounts for what a vCPU reserves.
Offering IDs
Section titled “Offering IDs”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.
Compare providers
Section titled “Compare providers”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.
ghost catalog provider <PROVIDER_ALIAS_OR_UUID>ghost catalog network-test <HOST_UUID>Each offering includes its provider UUID. Inspect that provider before renting: its name, rating and review count, the hosts, offerings and locations it lists now, and its completed-day 365-day uptime and abandonment sample: the same reliability record as the website’s.
Each offering also lists its hosts under host_ids and their best network
readings under network, which ghost catalog offering and --json show,
each with the location of the test server it was taken against.
ghost catalog network-test shows each test location’s latest upload,
download and latency result for one host.
Scores are comparisons, not a guarantee of application performance. Missing data is shown as unknown.
Reliability
Section titled “Reliability”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
Section titled “Network readings”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 as1 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
Section titled “Gateway RTT”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.
Rent an instance
Section titled “Rent an instance”- On the offering’s page, go to Rent it.
- Pick an operating system, or a backup from the list, which names each backup’s restore charge.
- Paste your SSH public key, or keep the saved keys the form offers, checked.
- For a home instance, choose the gateway tier and location.
- 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.
ghost instance create \ --offering <OFFERING_ID> \ --image debian-13 \ --hostname database-1.example \ --startup-command 'systemctl enable --now my-service' \ --ssh-key-file "$HOME/.ssh/id_ed25519.pub" \ --waitHome-mode offerings also require a gateway tier:
ghost instance create \ --offering <OFFERING_ID> \ --image debian-13 \ --gateway-tier high_bandwidth \ --ssh-key-file "$HOME/.ssh/id_ed25519.pub" \ --waitWith --wait the command ends with the line
instance ID (HOSTNAME) is running at ADDRESS; see
Connect with SSH.
The gateway tiers and locations are explained on Connect and networking, and what creation costs on Pricing and billing.
SSH keys
Section titled “SSH keys”Provide at least one SSH public key, or save keys on your account, which a creation installs unless you name others.
- Repeat
--ssh-key-fileor--ssh-keyto 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, orsk-ecdsa-sha2-nistp256@openssh.com; DSA keys and certificates are refused. - Pass public keys only, such as the
.pubfile:ghostrefuses 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.pubfile. - How to log in once it runs: Connect with SSH.
Image, hostname and first boot
Section titled “Image, hostname and first boot”| 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-configmust be a YAML mapping, a#cloud-config-archivea list, and a#cloud-config-jsonpa JSON Patch array; - a script starts with
#!, and a MIME multipart document needs aMIME-Versionheader; - without an SSH key,
ghostwarns when a#cloud-configsets 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-tierother thanshared_ipgiven 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.
Waiting for the first boot
Section titled “Waiting for the first boot”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.
--compactdoes not wait.- Repeating a creation with the same
--idempotency-keyreturns the job of the first request, andghostsays so, with when that job was made: nothing new is charged.backup createandbackup restoresay the same of a repeat.
While the instance is created
Section titled “While the instance is created”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’s gateway
Section titled “A home instance’s gateway”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_exhaustedmeans 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
Section titled “A failed creation”- 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.