Skip to content
Coritan Docs

Create an instance

Order a Cloud Compute instance on its order page, with a plan, an operating system, a location, your SSH keys and any add-ons.

View as Markdown

The Cloud Compute order page asks five things, in numbered sections: Plan, Operating system, Location, Settings and Add-ons. The first four start with an answer chosen for you, and the summary beside them keeps the price up to date as you change them. Add-ons are other products bought in the same order, such as more floating IPs. An instance is billed by what it uses, so the order has no price of its own to pay (How Cloud Compute is billed). The summary beside the sections is the checkout: one button places the order and pays what is due, on the same page. We start building the instance once anything due is paid, and it boots with the image, hostname and SSH keys you chose.

  • Create a Coritan account and sign in.
  • Your account needs Server access to order an instance. Pro, Business and Enterprise include it. A Free account buys it in the same order as its first instance, so there is nothing to order beforehand (Order Server access with your first instance).
  • A prepaid account needs the first deposit: $10.00 added in total, by default. It stays in your account as credit. The order pays it for you, as Order Server access with your first instance describes. How hourly billing works explains the rule. An account billed by invoice needs none.
  • You do not need to add credit first. Credit on your account pays what the order has due today. When it does not cover it, the summary adds the difference with the payment method you choose and then places the order.
  • To sign in over SSH without a password, have your SSH public key to hand, such as the contents of ~/.ssh/id_ed25519.pub. Connect to an instance over SSH shows how to make one.
  1. In the dashboard, go to Cloud Compute and select Order instance. You can also select the Cloud Compute card on the Order a service page. Either way, the order page opens at https://www.coritan.com/dashboard/order/cloud-compute.
  2. Choose a Hardware tier, if the page offers more than one. The tier sets the CPU class and the storage, and each tier sells the same sizes. A Performance tier pays 1.5 times the memory, CPU and disk rates.
  3. Under Size, choose a plan. Each row shows its vCPUs, memory, disk and monthly traffic. We start with the plan marked Popular when there is one, or else the smallest one on sale. A plan marked Sold out cannot be ordered anywhere right now. The size cannot change after you order: for a bigger instance later, order one and copy your data across (Get a different size).

A size sets what the instance has. It does not set a price, so the page has no billing cycle to choose. Each row shows what the size costs by use: its price an hour with every vCPU busy, a typical month with the CPU at 10% of its vCPUs, and the most a month can cost with every vCPU busy all month. You pay for the memory while the instance runs, for its disk while it exists and for the CPU it uses, so an idle instance costs well under its price at full CPU. A stopped instance costs its disk only.

The Server access card under the list says whether your account has Server access and what it includes: data out each month, and no memory, CPU or disk. A Free account without it sees the card say that an instance needs Server access, and the order adds it to the first instance (Order Server access with your first instance). A prepaid account that has not made the first deposit sees it in the summary as Deposit, and the order pays it with the first instance.

Choose the operating system and the location

Section titled Choose the operating system and the location
  1. Under Operating system, choose a card under Distribution. We choose its newest release that the plan can run, and a card under the distributions lists every release to choose from.
    • The line under the releases names the user you sign in as and the disk the image needs.
    • A release the plan is too small for is greyed out, with the reason under it, such as Needs at least 20 GB of disk.
    • A distribution marked Plan too small has no release that fits the plan. Choose a larger plan, or another distribution.
  2. Under Location, choose a data centre on the map or in the list under Data centres, which groups them by region. We start with the one marked Closest to you. Pick the one closest to the people who will use the instance: its address is local to that location. A location marked Sold out has no room for this plan right now.

You can rebuild the instance onto another image later, from its Access tab.

  1. Under Settings, keep the suggested Hostname, such as ubuntu-fra-1, or type your own, such as web-1. The instance uses it as its hostname. Use one name of up to 63 letters, digits and hyphens, with no hyphen at either end. The field turns capitals into lower case as you type.

    We refuse an order for a name with dots, such as web-1.example.com. Order it as web-1, and point a DNS record at the instance's address to reach it by a domain name.

  2. Under SSH keys, paste one OpenSSH public key per line. Cloud-init adds them to the image's default user on the first boot. This is optional.

  3. Leave the switch on the Public IPv4 address card on to order the included address. It costs nothing while it stays attached as the instance's primary address. We take it from the instance's location and attach it when setup finishes.

    Where the location has IPv6, the instance also gets an IPv6 /64 at no charge, whichever way you set the switch. Add IPv6 to an instance explains the /64.

  4. If the plan has Plan options, answer them. We add the price of any option you take to every charge.

Important

If you turn off the Public IPv4 address switch, the instance has no public IPv4 address. Until you attach a floating IP to it, you can reach it only through the display console, or over IPv6 where its location has IPv6. You also cannot add floating IPs or a DDoS Shield profile to the order.

Under Add-ons, turn on the switch of anything you want to buy with the instance. This is optional. Each card shows its price for the order's billing cycle, and everything you add goes on the instance's first invoice:

  • Floating IPs are more public IPv4 addresses. Set How many you want, up to four in one order, and choose a size under Size when more than one is on sale. They come from the address pool in the instance's location, and we attach them to the instance when it is ready. DDoS Shield filters each one at no charge.
  • A DDoS Shield profile is one set of traffic rules and limits that several of your addresses share, such as the included address and any floating IPs in the order. Without one, DDoS Shield still filters every address at no charge, and each address can have settings of its own at no charge. Give it a Profile name, or we name it after the hostname.
  • Mail Hosting adds mailboxes on your own domain. Choose a plan if there is more than one, and add a Domain now or later.
  • SMTP Relay delivers the mail your applications send. Choose a plan if there is more than one, and add a Sending domain now or later.

A card that cannot be added says why, and its switch stays off. Floating IPs and a DDoS Shield profile both need the included public IPv4, and floating IPs also need a location whose pool has addresses left. Each add-on becomes a service of its own, which you can cancel on its own later. Add products to the order has the rules for every product.

Order Server access with your first instance

Section titled Order Server access with your first instance

A Free account has no Server access, and an instance needs it. The order adds it for you: Server access is an account add-on, so it is one more line on the order's first invoice and it covers every instance and game server on the account from then on. It renews monthly at its price in the catalogue, $4.50 a month. A Pro, Business or Enterprise account has it already, and so does an account on a trial, so its order has no such line. Server access includes data out only: 1,000 GB in North America and Europe and 500 GB elsewhere each month, shared by every instance and game server on the account. It ends, with its unused days credited to you, when you buy Pro or Business (When a plan includes Server access). If it lapses, what you run keeps running and a new instance or game server is refused until the account has it again.

What you pay depends on your account:

  • Credit covers it. Under Due today, the summary lists Server access, any deposit and the Account credit line that your balance covers. We take it from your credit when you place the order, and the instance and Server access both start building.
  • Credit does not cover it. Under Pay with, choose a saved payment method, a new card or a wallet. We add the difference as credit with that method first, at least $1.00, and then place the order and pay it from that credit. A first deposit is part of that difference, so a Free account with no credit pays Server access and the $10.00 deposit in one click, and the deposit stays in your account as credit.
  • Your account is billed by invoice. No invoice is due now. Both start at once, and Server access appears on your next monthly invoice.

The summary shows Server access as its own line, and Due today counts it. The instance still adds nothing to it.

  1. Check the summary under Your order. On a phone it follows the sections, and a bar at the bottom of the screen shows what is due today with the same button. It lists the plan, the operating system, the location and the hostname, each with Change beside it to go back to its section. Under Billed it lists the instance as billed by use, with about what a typical month costs, the public IPv4 address as Included and each add-on with its price.
  2. If you have a promo code, enter it in Promo code. The field shows once something is due today, such as Server access or the deposit. We check it as you type, and the message under the field says whether it applies. A code that cannot be used on this order greys out the button until you clear it or change it.
  3. Check Due today. It lists Server access and a Deposit when your account needs them, any add-ons, and the Account credit your balance covers. The total above it says what a typical month costs, with Server access.
  4. Under Pay with, choose how to pay when your credit does not cover Due today: a saved payment method (we start with your default), a new card, or a wallet such as Google Pay. A hosted checkout, such as PayPal, opens its own page and brings you back to this order with your choices kept.
  5. If the button is greyed out, read the line under it. It names the first answer still missing, such as Choose an operating system., and selecting it takes you to that section.
  6. Select the button. It reads Deploy when nothing is due. When something is due, it names the amount your payment method is charged. A Free account with no credit sees "Pay $14.50 and deploy": Server access at $4.50 and the $10.00 first deposit. One click places the order and pays it. A new card or a bank's confirmation opens in the summary, and the order goes on from there.

If the payment is declined, or we refuse the order, Your order was not placed appears under the button with the reason, and your choices stay as they were. Choose another method and select the button again. We never place the same order twice: when the order was placed but its invoice could not be paid, its page opens and the invoice waits there. When its title reads Order placed, payment due, pay under Pay invoice, as Pay and follow the order describes. If you leave without paying, pay the invoice under Invoices. Setup starts once it is paid.

The page keeps your choices as you make them, so a reload, a bank's page or a hosted checkout brings you back to the same order.

The order's page shows Setting up while we build the instance, and checks on it again, every few seconds at first and then less often, for as long as the page is open. Its title becomes Your order is ready when the instance and every add-on are active. The Subscriptions tab of Billing lists the instance as soon as you order it (Manage your subscriptions). The Cloud Compute page lists it once it has been built and started, with the included address attached. We email you when each service is ready.

Where its location has IPv6, the instance's card and header also show its IPv6 address. The instance starts before we give it its /64, so restart it once from the header to set the IPv6 address up, as Set up IPv6 inside the instance explains.

We generate a password for the default user when we build the instance, but no page shows it. The Access tab shows only whether one is set. Sign in with the SSH key you added, or reset the password to get one you can use.

The button under the summary is greyed out
The line under it names the first answer still missing. Select it to go to that section.
This plan has no active price.
The plan has no price on sale on any billing cycle. Choose another plan.
This plan is sold out everywhere right now.
No location has room for this plan. Choose another size or hardware tier.
Deposit at least $10.00 before you start anything that bills by use. The deposit stays in your account as credit.
A prepaid account has not added the first deposit. The page adds it for you when it can quote the order, so you see this when you place an order with the API. Add credit, then place the order again. The answer is 403.
Virtual machines and game servers need Server access, which costs $4.50 a month. Pro and Business include it.
Your account has no Server access. The answer is 402 with the code paid_plan_required. Send the order again with include_paid_plan set to true to buy Server access with it (With the API), add it first (Add Server access), or move to Pro, then place the order again.
Your monthly budget is reached, so new usage-billed services cannot be ordered until it is raised or the month turns.
The monthly budget on your account is reached. The answer is 402 with the code spend_limit_reached. Raise or remove the budget (Set a budget).
That image cannot go on this plan: needs at least 20 GB of disk.
You chose a smaller plan after the image. Choose a larger plan, or another release.
Could not load the images
The list of images did not load. Select Try again.
No images are ready right now
We are still preparing the images for the plan. Try again shortly.
That location has no capacity for this plan.
The location filled up after you chose it. Choose another. Every location is sold out for this plan means you need a different size or tier.
A hostname is one name with no dots, such as web-1.
The Hostname field shows this when the name has a dot. Use one name, such as web-1, and point a DNS record at the instance's address to reach it by a domain name.
A hostname can use only letters, digits and hyphens, and cannot start or end with a hyphen.
The name has a character other than a letter, a digit or a hyphen, such as a space or an underscore, or it starts or ends with a hyphen. A hostname can be at most 63 characters. means the name is too long.
Each line must be one OpenSSH public key, e.g. "ssh-ed25519 AAAA… you@laptop".
A line in SSH keys is not a public key. Paste the .pub file, one key per line. The page accepts ssh-ed25519, ssh-rsa, ssh-dss, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, sk-ssh-ed25519@openssh.com and sk-ecdsa-sha2-nistp256@openssh.com keys.
The Floating IPs card says Keep the included public IPv4 to add floating IPs.
Turn the switch on the Public IPv4 address card back on. The included address is free, and floating IPs are extra addresses on top of it.
The Floating IPs card says the pool is sold out
The location has no addresses left to sell. Choose another location, or order the instance without them and order a floating IP later.
No address
We built the instance but could not attach the address ordered with it. The address is still on your account: go to Floating IPs, open it, and attach it to the instance as Attach and detach a floating IP describes.

Three requests give you the values an order needs:

  • GET /api/v1/products/ lists the plans. A Cloud Compute plan has module_name set to vps. Its billing_model is usage, and its usage block gives what it costs by use (How Cloud Compute is billed). Its pricing list holds one row per billing cycle, each with the id you send as pricing_id, and its locations list gives each location's code and whether it is orderable for the plan.
  • GET /api/v1/client/vps/templates lists the images you can order, each with the id you send as template_id. Operating system images describes the fields.
  • GET /api/v1/locations lists every active location where we run servers, with its code.
Shell
curl "https://api.coritan.com/api/v1/products/?per_page=200" \
  -H "Authorization: Bearer $CORITAN_TOKEN"

Place the order with POST /api/v1/services/order, as Order a service describes, with the plan's product_id and a pricing_id. On your own account, any price of the plan orders the same instance, because it is billed by use. Send the instance's settings in config:

location
The location code, such as fra.
template_id
The image's id.
hostname
Optional. The instance's hostname: one name of up to 63 letters, digits and hyphens, with no dots and no hyphen at either end. When you leave it out of config, we use the top-level hostname. When you leave out both, we name the instance vps- followed by its service ID.
ssh_keys
Optional. OpenSSH public keys, one per line.
order_ipv4
Optional, false when left out. Send true to order the included public IPv4 address with the instance, as the dashboard does.
pool_id
Optional. The IP pool to take the included address from. Without it we use a pool in the instance's location. IP pools and regions lists them.
allow_pool_fallback
Optional, false when left out. Send true to accept an address from a pool in another region when the instance's location has none, or when the pool_id you sent is in another region.
prefix_len
Optional, 32 when left out. 32 orders one address. 24 to 29 order a subnet instead, which is billed at its catalogue price and is accepted only where subnets are on sale. How subnets work explains them.

The plan sets the instance's size, so leave cpu_cores, memory_mb and disk_gb out, and their other spellings (vcpu, ram_mb, ram_gb, disk_mb). A body that names one with a value the plan does not have answers 422, and a body that names the plan's own value is accepted as if it were left out.

To buy add-ons in the same order, list them in addons, as Add-ons in the order describes. An instance takes up to 4 floating IPs, and only with "order_ipv4": true. A DDoS Shield profile protects the included address and the floating IPs in the order. This example adds one floating IP:

Shell
curl -X POST https://api.coritan.com/api/v1/services/order \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": 12,
    "pricing_id": 34,
    "hostname": "web-1",
    "config": {
      "location": "fra",
      "template_id": 7,
      "hostname": "web-1",
      "order_ipv4": true,
      "ssh_keys": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExample alex@example.com"
    },
    "addons": [
      {"product_id": 31, "quantity": 1}
    ]
  }'

The response answers 201 with the new service, a service for each add-on in addons, invoice_id, requires_payment, amount_due and a message. When requires_payment is true, pay the invoice it names before setup starts. An instance with no add-ons has no invoice to pay. Once the instance exists, GET /api/v1/client/vps lists it with its uuid. Where its location has IPv6, the instance gets its /64 with no field in config, and the list shows it as ipv6_address and ipv6_prefix.

Order Server access with the instance

Section titled Order Server access with the instance

Send include_paid_plan set to true with the order, beside product_id and config, to buy Server access (the addon-compute-paid add-on) on the same first invoice instead of meeting the 402:

Shell
curl -X POST https://api.coritan.com/api/v1/services/order \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": 12,
    "pricing_id": 34,
    "hostname": "web-1",
    "include_paid_plan": true,
    "config": {"location": "fra", "template_id": 7, "order_ipv4": true}
  }'

The invoice holds one line, Server access (service #NNN), at the add-on's active monthly price. The response lists the add-on after the add-ons you ordered, in addons. When your credit covers the invoice, the response has requires_payment set to false and the message Payment applied from credit balance; provisioning started. Otherwise requires_payment is true, invoice_id names the invoice, and the instance and Server access start once you pay it. An account billed by invoice gets no invoice, and both start at once.

POST /api/v1/checkout/quote takes the same field. Its lines then hold {"label": "Server access", "amount": "4.50", "cycle": "monthly", "kind": "addon"}, due_now counts it, renews lists it. paid_plan.price is the add-on's active monthly price whether or not you send the field.

The order and the quote refuse the field with 422 when it does not apply:

  • detail.code included_by_plan: your plan already includes Server access.
  • detail.code already_ordered: your account already holds it, or has an order for it waiting for payment.
  • Server access goes with a virtual machine or a game server billed by use.: the order is another kind of product, such as a web service.

A second identical order (same plan, cycle and hostname) within two minutes of the first, while the first is still pending, returns the first order with the message Order already submitted instead of a new one.

Errors in the order answer 422 with a list under detail.errors:

  • template_id is required, or location is required (airport code, e.g. iad).
  • memory_mb is set by the plan, so an order cannot change it. Choose a plan with the memory you need.: the config names a vCPU, memory or disk figure that is not the plan's. detail.field names it (cpu_cores, memory_mb, disk_gb or another spelling), and the sentence names the part to choose a plan for (vCPUs, memory or disk). Choose a plan with the size you need. POST /api/v1/checkout/quote answers the same way.
  • OS template 7 is not ready in location 'fra': that image cannot be built in that location. Choose another image or location.
  • No available ... with sufficient capacity for this Cloud Compute instance: the location has no room for the plan.
  • No sellable IPv4 pool available in location 'fra': we have no addresses to sell in that location. Send allow_pool_fallback, order without order_ipv4, or add a floating IP later.
  • IP pool region 'iad' does not match compute location 'fra' (set allow_pool_fallback to override): the pool_id you sent is in another region.
  • Keep the included public IPv4 to add floating IPs. It is free, and floating IPs are extra addresses on top of it.: the order has floating IPs in addons without "order_ipv4": true.
  • An instance takes at most 4 floating IPs in one order.: the quantity of floating IPs is more than 4.
  • A hostname is one name with no dots, such as web-1., A hostname can be at most 63 characters. or A hostname can use only letters, digits and hyphens, and cannot start or end with a hyphen.: the hostname breaks the rule above.

An order from a prepaid account that has not made the first deposit answers 403 with Deposit at least $10.00 before you start anything that bills by use. The deposit stays in your account as credit. An order from an account without Server access answers 402 with the code paid_plan_required, and names the add-on in upgrade.addon and the plan that includes it in upgrade.plan. POST /api/v1/checkout/quote takes the same body and says whether the order needs either (paid_plan and deposit).

API operations on this page

MethodPathWhat it does
POST/api/v1/services/orderOrder a platform service, and any add-ons bought with it