Order a deployment
Order a game server, a database, your code from a repository or an image, or a static site, with its locations, billing and add-ons.
The order page orders every kind of deployment. Under What to deploy, you choose what it runs:
- Software: a game server, a database or other software from the catalogue, which we install and set up for you, or a copy of one of your snapshots.
- Git repository: your code, built on every push to its production branch and run in the locations you choose.
- Static site: files built from your repository and served from every edge location.
- Container image: a public image, such as one your CI builds from a Dockerfile and pushes to Docker Hub or GitHub Packages, run as it is.
- Starter: a ready-made project from the gallery, deployed as it is and yours to change.
Order software covers the first, and Order your code the other four. The page shows the sections that choice uses, numbered in order. The summary beside them is the checkout: it lists your choices and what you pay, and its one button places the order and pays for it, so you never leave the page to pay (Place the order). Every section that can have an answer starts with one, so you can order without opening a section. Once the order is paid, we set the deployment up: we install the software on its server, or build your code and put its first release live.
Note
If the order page has no What to deploy, the other kinds are not open yet, and the page orders software only. Its sections are then Plan, Software, Location, Settings and Add-ons, with the cards Order software describes, and the API answers 404 for the other kinds too.
Before you begin
Section titled Before you begin- Create a Coritan account and sign in.
- On your own account, a game server, a database and every kind of deployment is billed by what it uses, so the order has no price of its own to pay (How usage billing works). The summary shows what is due today and takes it in the same click that places the order: your account credit first, then the payment method you choose under Pay with.
- A prepaid account needs the first deposit before anything that runs: $10.00 added in total, by default. The summary adds it to the order as Deposit, and the same payment covers it (Pay the first deposit). How hourly billing works explains the rule. A static site needs none, and neither does an account billed by invoice.
- A game server or a database needs Server access. Pro, Business and Enterprise include it. A Free account buys it in the same order as its first game server or database (Order Server access with your first server). A web service, a hybrid site and a static site need no plan.
- For code on GitHub, you connect GitHub from the order page. A public repository on any host needs only its address (Deploy from a git repository).
- On your own account, every choice for a web service, a hybrid site and a static site is open: more than one location, autoscaling, previews and protection. A web service or a hybrid site opens them with the first deposit, which the order takes. A static site needs the first deposit made already, or Server access. An organization's order follows the owner's plan, and where the plan stops the page shows the plan that adds the choice (Pricing).
Open the order page
Section titled Open the order page- In the dashboard, go to App Deployment and select New deployment. You can also start from the Order a service page, or one of its quick starts, which chooses the software for you. Either way, the order page opens at
https://www.coritan.com/dashboard/order/app-deployment. - Under What to deploy, select what the deployment runs, then follow Order software or Order your code.
A Deploy button in a project's README opens the page with its repository chosen, at https://www.coritan.com/dashboard/order/app-deployment?repo= followed by the repository's address (Deploy from a git repository). While the other kinds are not open yet, the page says Deploying from a repository is not open on your account yet, and orders software instead.
To order for an organization, select For an organization on App Deployment, then the organization; the menu lists each organization where you are an owner or admin. You can also open it under Organizations, go to its App Deployment tab and select New deployment. Only an owner or an admin of the organization can order for it. The page says Ordering for and the organization's name: the deployment belongs to the organization, and its owner's account pays for it. An organization's order cannot start from a snapshot. It also keeps the plan price you choose: its page has a Size section and a Billing section, which Orders for an organization describes, and it is not billed by use until you move it.
Order software
Section titled Order softwareA game server, a database or other software from the catalogue runs on a server of its own. We install the software and set the server up for you, and each location you choose gets a server with its own files and data.
Choose the software
Section titled Choose the software- Under What to deploy, select Software, when the page offers it.
- In the Catalogue, choose a category, such as Game servers or Databases, or type in Search the catalogue, then select the software's card.
- For software with flavours, such as Minecraft, choose the flavour, then the game version. For software sold in major versions, such as MariaDB, choose the version to run.
- Under Version, leave Latest selected to install the newest release, or choose a version. With many versions, Find a version filters them. For Minecraft, we choose the Java runtime each version needs.
- If the software asks for more details, fill them in on its card. Under Runtimes, the Git repository of Node.js and Python is optional: we clone it when the server installs, and without one the server starts empty, for code you add in Files or over SFTP.
A link that names a category, such as https://www.coritan.com/dashboard/order/app-deployment?category=games, opens the page with the most popular software of that category already chosen: Minecraft, with its recommended flavour, for game servers. Change nothing and the order is ready to pay.
The list of versions leaves out snapshots and unsupported builds. You can install those later from the server's Software tab, where you can also switch to other software.
Start from a snapshot
Section titled Start from a snapshotWhen your account holds a finished snapshot of a game server or a database, a Start from card comes before the Catalogue. Clean install picks the software from the catalogue as above. One of my snapshots starts the new server as a copy of the server you took the snapshot of: we install the software the snapshot ran, then restore its files. Use it to move a server to another location or a larger plan, or to bring back a server you deleted.
- Under Start from, select One of my snapshots.
- Under Snapshot, select the snapshot. Each card shows the software it was taken on, about how much disk it needs, when it was taken and the server it came from. A card marked Plan too small needs more disk than the plan has, so choose a larger plan under Size.
- Choose the location and the name as usual.
While a snapshot is chosen, the catalogue is hidden, because we install the software the snapshot ran. A snapshot that did not record its software shows This snapshot does not say which software it ran, and the catalogue stays: choose the same software, because a snapshot cannot be restored onto a different game. The summary lists the software with Installed from the snapshot, and the snapshot under Start from with Restored once the install finishes.
A snapshot holds the server's files only, so create its databases again on the new server. After the install, the new server's Snapshots tab follows the restore (Start a new server from a snapshot). To open the order page with a snapshot already chosen, add ?snapshot= and the snapshot's UUID to its address, such as https://www.coritan.com/dashboard/order/app-deployment?snapshot=3a9f1c2e-7b4d-4e8a-9c1f-2d3e4f5a6b7c.
Choose a plan
Section titled Choose a plan- 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.
- Under Size, choose a plan. Each row shows its vCPUs, memory and storage and what its price is by the hour and the month (see below). We start with the plan marked Popular, 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 server later, order one and start it from a snapshot of this one (Start from a snapshot).
Some games need more memory than a small plan has: Rust, Palworld and Satisfactory need at least 8 GB, and Project Zomboid needs 4 GB. We refuse an order for one of them on a smaller size, and the message names the minimum and says to choose a larger plan.
A size sets what the server has, and does not set a price. A server ordered on your own account is billed by use, with its memory while it runs, its disk while it exists, the CPU it uses and its data out (How game servers and databases are billed). A stopped server costs its disk only. Each row shows what an hour costs with every vCPU busy, what a typical month costs with the CPU at 10% of its vCPUs, and the most a month can cost with every vCPU busy all month. There is no billing cycle to choose. The summary's line for the server reads Billed by use, about and a typical month, and its Total shows that month with Server access. Under the list, the page says whether your account has Server access. An organization's order keeps the plan price, and its page shows the price for each billing cycle. A prepaid account that has not made the first deposit, or an account without Server access, pays for them in the same order (Order Server access with your first server and Pay the first deposit).
Choose the locations and a name
Section titled Choose the locations and a name- If the page offers Where it runs, keep Single for one server, or choose Several for a server in each of several locations. Each of them is a server of its own, with its own files and data, and each is billed as one.
- For one 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 server: its address is local to that location. A location marked Sold out has no room for this plan right now. For several, select each location in the list.
- Under Settings, keep the suggested Server name, such as
Minecraft Paper server, or type your own of 2–48 characters. It can use letters, numbers, spaces and- _ . ' ! & ( ) [ ] , : +. The name appears in your server list and the console. You can rename the server later from its Settings tab (Rename the server). - If the plan has Plan options, answer them. We add the price of any option you take to every charge.
- For a game server, Start it when the install finishes is on. Turn it off to keep the server stopped after the install, and start it from its console when you are ready.
Note
We assign the server's public address and first port while we set it up in the location you chose. You can add more ports from the Ports tab, up to the plan's limit.
Add products to the order
Section titled Add products to the orderUnder Add-ons, turn on the switch of anything you want to buy with the server. This is optional. Each card shows its price for the order's billing cycle, and everything you add goes on the server's first invoice:
- A Dedicated IPv4 address is an address of the server's own, so players join on the default port and nobody else shares it. A server takes one. It comes from the address pool in the server's location, and we attach it to the server when it is ready. DDoS Shield filters it at no charge. It stays on your account if you move it later.
- A DDoS Shield profile is one set of traffic rules and limits that several of your addresses share. A single server does not need one: DDoS Shield already filters its dedicated address at no charge, and that address can have settings of its own at no charge. A profile needs the dedicated address in the same order. Give it a Profile name, or we name it after the server.
- Snapshot Storage adds room for snapshots of your servers, on top of what the plan includes. Choose a size under Size when more than one is on sale.
- 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. We do not offer it with a game server.
- Mail Hosting adds mailboxes on your own domain. Choose a plan if there is more than one, and add a Domain now or later.
A card that cannot be added says why, and its switch stays off. For example, the pool in the server's location may have no 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 your code
Section titled Order your codeA deployment from a git repository, an image or a starter runs your code on instances in the locations you choose, and a static site is served from every edge location. Each version you deploy is a release, which goes live once it passes its health check (Deploy, promote and roll back releases). After What to deploy, the page asks for Locations and Add-ons and bindings. Build and run, Networking, Git and Advanced have answers chosen for you, so one Defaults row lists them and a code order shows only the source, the locations and the summary. Select Change on the row, or Change beside the name or the billing in the summary, to open them. A section that needs you opens by itself: a variable a starter requires, a refusal, or a value that is not valid. A static site has no Locations, and Git is only for a git repository or a static site. There is no size to choose, no plan and no billing mode: on your own account, the deployment is billed by what it uses (How App Deployment is billed).
Choose the source
Section titled Choose the source- Under What to deploy, select Git repository, Static site, Container image or Starter.
- For a git repository or a static site, choose it under Repository:
- From GitHub lists the repositories your GitHub access reaches. Type in Find a repository to narrow them, then select one. The first time, Connect GitHub takes you to GitHub to choose which repositories Coritan can read, then back to this page with your choices kept. Add a GitHub account connects another account.
- Paste an address takes any repository by its
httpsaddress, such ashttps://github.com/you/site.git. A public repository needs nothing else. For a private one that GitHub access does not cover, fill in Access token, which we store sealed. When the page does not offer From GitHub, paste the address.
- For an image, type it under Image with its host and tag, such as
ghcr.io/you/site:1.4. Without a host, Docker Hub is used, and without a tag,latest. The image must be public, and each new release pulls it again. - For a starter, select one. Each starter is a public repository, which the deployment builds as it is, and it fills in Build and run and the variables the project needs. You can connect your own copy later from the deployment's Git tab.
A static site ordered on your own account is not one of your plan's websites. A static site ordered for an organization is, and counts for the organization's owner. When every website the plan includes is in use, More websites says so, and offers a larger plan or the websites pack.
Set how it builds and runs
Section titled Set how it builds and runsUnder Build, leave a field blank and the build works it out from the repository:
- Framework: we detect it, or choose one from the list.
- Root directory: the directory the project is in, for a repository that holds more than one.
- Build command, such as
npm run build. - Output directory, for a static site or a hybrid site: where the build writes its files. Left blank, it is the framework's own, or we look for
dist,build,out,publicor_site.
For a git repository, How it is served chooses A server, where every request goes to the instances, which run the start command, or Hybrid, where the edge serves the built files from every location and every other request goes to the instances. That makes it a hybrid site (Host a static site or a hybrid site).
Under Run, which a static site does not have:
- Start command, such as
npm start. Left blank, the build works it out, and an image runs its own. - Port: the port your code listens on,
3000when left blank. - Health check path: an instance takes traffic once this path answers,
/when left blank.
An image is not built, so it has Run and no Build.
Under Variables, select Add a variable for each value your code reads: its Name and Value, the environment it applies to (Every environment, Production, Previews or Development), and whether it is Secret. A secret is never shown again once saved. A name uses capital letters, digits and underscores, and does not start with a digit. The platform sets some names itself, such as PORT and most names that start with CORITAN_. Only CORITAN_ORG_API_KEY, CORITAN_WEBHOOK_SECRET and CORITAN_MICROSOFT_ADS_FEED_URL are free for you to set, and the build never reads them. A variable that a starter or a link asks for is listed already: fill it in (Environments and variables).
Choose the locations
Section titled Choose the locations- Under Where it runs, choose Single for one location, which the page starts on, Several to choose the locations from a list, or All to run everywhere App Deployment runs, and in each new location as it opens. Visitors reach the nearest location that runs the deployment. For one location, choose it under Data centres. We start with the one closest to you.
- Under Instances, set how many run In each location, from 1 to 5. One is enough to start. More serve more traffic, and keep serving while one restarts. With Several or All, each location in the list can have its own number.
- Turn on Autoscaling to add instances under load and remove them when it passes. Set Up to, the most instances a location runs, at most 10. Then choose what to Scale on, Requests per second, Requests at once or Processor use (%), and the Target for each instance.
- Turn on Sleeps when idle to stop an instance that has no requests, and wake it on the next request in a few seconds. Sleeps after sets how long it waits, from 5 minutes to 1 day. A sleeping instance costs nothing.
Each instance starts with a memory limit that the platform sets and grows by itself, so there is no size to choose. Set the largest memory and a monthly budget covers the most it may grow to (Choose locations and scaling).
Name it and choose who can open it
Section titled Name it and choose who can open itUnder Networking:
- Under Name and address, keep the suggested Deployment name or type your own, 2 to 48 characters by the same rule as a server name. We suggest one from the repository, the image or the starter. Platform address shows the address it gets, such as
web-shop.apps.example.net, or the nearest free name like it, with a certificate from the start. - Under Custom domains, type any domains of your own, one per line, up to 20. Once the deployment is ready, its Domains tab shows the record to add for each, and the certificate follows (Add a domain and protection).
- Under Protection, choose who can open the deployment: Anyone, Your team, who sign in with their Coritan account, or A password of 8 to 128 characters, which visitors type once per browser. Applies to keeps it to Previews only, or to Previews and production. On your own account it is open (Before you begin). An organization's order needs a plan that includes it.
Choose what a push does
Section titled Choose what a push doesUnder Git, for a git repository or a static site:
- Check the Production branch: a push to it becomes the live release. A repository chosen from GitHub starts with its default branch, and a blank branch is
main. - Turn on Previews to give every other branch and pull request a release of its own, at its own address. Previews bill like production while they run. They are open on your own account (Before you begin), and an organization's order needs a plan that includes them.
- Keep Comment on pull requests on to put each preview's address and status on its pull request. It needs the repository chosen through GitHub.
Deploy from a git repository covers pushes, previews and deploy hooks once the deployment exists.
Set the largest memory and a monthly budget
Section titled Set the largest memory and a monthly budgetAdvanced holds two optional settings. The page works with both left as they are.
- Under Largest memory limit, choose the most memory an instance may have. The list starts at the memory an instance starts with, 512 MB, or 1 GB for Next.js, and goes up to 16 GB. The page starts on
4 GB, the default. An instance starts small and its limit grows by itself when it needs more, up to this one. You pay for the memory an instance uses, never for the limit (Memory grows automatically). A static site runs no instance, so it has no Largest memory limit. - Under Monthly budget, type the most this deployment may cost in a month, such as
50.00, or leave it empty. At the budget, previews sleep, and extra instances, memory growth and new builds wait for the next month, while production keeps serving. Later, on the deployment's Billing tab, you can have the budget stop every instance instead (Set a budget).
If a link to the page names a plan, such as ?plan= with a plan's ID, the summary shows Starting memory with that plan's memory, and Largest memory limit starts from it.
See what a month can cost
Section titled See what a month can costThe summary beside the sections has a Billed by use panel: "You pay for the memory, CPU, requests and data your app uses, after the free amounts each month." Once every section is answered, the panel shows what a month can cost for sample traffic, worked out from the rates on your account for the instances your order starts with. A static site shows A static site is free to serve instead.
For one instance in North America or Europe, with none of the month's free amounts used yet:
| Sample | The instance | A month |
|---|---|---|
| Idle | Holds 0.25 GiB, uses 0.01 vCPU, answers 10,000 requests and sends 0.5 GB out | $0.25 |
| Light | Holds 0.5 GiB, uses 0.1 vCPU, answers 1 million requests and sends 10 GB out | $1.14 |
| Busy | Holds 2 GiB, uses 0.5 vCPU, answers 20 million requests and sends 300 GB out | $12.81 |
The figures use the list rates and the free amounts of Oct 11, 2026. Every sample runs all month. The light one uses 365 GiB-hours of memory, and the first 100 are free, so 265 cost $0.795. Its CPU is 73 vCPU-hours, the first 50 are free, and 23 cost $0.345. Its requests and data out are inside the free amounts. That makes $1.14. With two locations, the order starts two instances, and the panel counts both: memory and CPU double, and requests and data out stay the same. How App Deployment is billed has the same arithmetic for a busier service.
The panel also lists what is free each month, and notes that all your deployments share it. A static site costs nothing inside the free builds and logs.
For a web service, Try other numbers under the samples opens the estimator. Change the hours a day it runs, the memory and CPU each instance uses, the requests and the data out, and it prices that month from the same rates. Hide the estimate closes it. The estimator is a tool for planning: it changes nothing in your order.
Pay the first deposit
Section titled Pay the first depositA prepaid account needs the first deposit before the order can run an instance: $10.00 added in total, by default. It stays in your account as credit and pays for what the deployment uses. A static site needs none, and neither does an account billed by invoice.
While the deposit is missing, the summary shows Deposit under Due today, with $10.00 of credit, which stays yours. You pay it with the order. When you select the button, we add the deposit, and anything else due that your credit does not cover, to your credit with the payment method you chose, then place the order and pay it from that credit. A hosted checkout such as PayPal opens its own page, adds the credit and brings you back to this order with your choices kept. You do not go to Billing to add credit first.
Orders for an organization
Section titled Orders for an organizationAn order for an organization keeps the plan price you choose, so its page has two more sections than the one above, and no Advanced:
- Size sets the plan of each instance. Every instance of the deployment starts at this size, in every location.
- Billing sets how the deployment is billed. Under How it is billed, choose Pay as you go, where each running instance is billed by the hour, or Monthly per location, a fixed price for the instances each location keeps. Allowances shows what the owner's plan includes each month. Under Past an allowance, choose Stop at the allowance or Bill past the allowance, and set a Monthly budget.
The owner's plan sets how many locations the deployment can run in, and whether it includes autoscaling, previews and protection.
Add-ons and bindings
Section titled Add-ons and bindingsUnder Add-ons and bindings, turn on anything you want with the deployment. This is optional.
- An add-on is another product bought in the same order, billed with the deployment on the same invoice: SMTP Relay or Mail Hosting. A dedicated address, a DDoS Shield profile and Snapshot Storage are a server's, so a deployment is not offered them.
- A binding connects the deployment to something on your account and sets the variables that reach it, with no charge of its own. Object Storage bucket creates a bucket in your Object Storage service, with a key for this deployment alone, and sets the
S3_variables. Database connects one of your database deployments and setsDATABASE_URLand its parts. SMTP Relay creates a sending credential for this deployment and sets theSMTP_variables. A static site takes no bindings.
If what a binding uses is missing when the deployment starts, the deployment runs without the binding, and its Variables tab can add it later (Variables from Coritan services).
Order Server access with your first server
Section titled Order Server access with your first serverA Free account has no Server access, and a game server or a database 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 game server, database and instance 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.
The summary lists Server access under Billed and under Due today, and the order sends it as part of the same order. What you pay depends on your account:
- Credit covers it: we take it from your credit at once, and the server and Server access both start building.
- Credit does not cover it: the button reads
Payand the amount. A Free account with no credit paysPay $14.50 and deploy, which is the $10.00 first deposit and $4.50 for Server access. We add the rest to your credit with the payment method you chose, then place the order. - Your account is billed by invoice: nothing is due now. Both start at once, and Server access appears on your next monthly invoice.
The Total reads a typical month for the server with Server access. The server itself adds nothing to what is due today. A prepaid account still needs the first deposit before anything that runs (Pay the first deposit). A web service, a hybrid site and a static site need no Server access.
Place the order
Section titled Place the order- Check the summary under Your order. On a phone it follows the sections, and the bar at the bottom of the screen shows what is due today with the same button. The summary lists each choice with Change beside it, or Choose while it has no answer, to go to its section. Under Billed it lists each line: the server or deployment with
By use, Server access with its price when the order buys it, and each add-on. A web service, a hybrid site or a static site on your own account also has the Billed by use panel (See what a month can cost). - Read the Total. A server billed by use shows a typical month, with Server access. A web service reads Billed by use, and a static site reads Nothing to pay now.
- Promo code applies the code as you type, with no button. The line under it says what the code takes off, or why it cannot be used. A server or a web service on your own account shows the field only when the order has something due today for a code to take off, such as Server access, an add-on or the deposit. A static site shows it once an add-on makes something due.
- Due today lists what you pay now: Server access, Deposit, other charges, and the Account credit that covers part of it. The button charges the total.
- Under Pay with, choose how to pay when your credit does not cover Due today: a saved payment method, a new card in the form that opens in place, or a wallet such as Apple Pay or Google Pay. We choose your default saved method first. When your credit covers everything, the summary says
We take it from your account credit.and shows no payment methods. - If the button is greyed out, read the line under it. It names the first answer still missing, such as
Choose the software to run., and selecting it takes you to that section. - Select the button. It says what it does:
Deploywhen nothing is due, and the amount when something is. With no credit, a web service on a Free account readsPay $10.00 and deploy, the first deposit. A game server or a database readsPay $14.50 and deploy, which adds $4.50 for Server access. One click adds any credit it needs, places the order and pays it. Your bank's confirmation page for a card opens in place. A hosted checkout such as PayPal opens its own page and brings you back to the same order. A payment that is declined keeps every choice and says why under the button.
The page keeps your choices for the length of the browser tab, so a detour comes back to the same order: signing in again, connecting GitHub, a hosted checkout, your bank's confirmation or a reload. A link's own words, such as ?software=, ?category= or ?repo=, win over the kept choices, and placing the order clears them. It does not keep secrets: type again the value of a variable marked secret, an access token and a protection password.
If we refuse the order, the reason appears under the button as a link to the section it is about, and your choices stay as they were. When an organization's plan does not include a choice, such as a second location or previews, Your plan does not include this names a plan that does. When your monthly budget is reached, Your monthly budget is reached says so and Usage budgets opens Billing, Usage, where you raise the budget. When the order is placed, its own page opens. An order that was placed and could not be paid keeps its invoice there: pay under Pay invoice, as Pay and follow the order describes, or later under Invoices. Setup starts once it is paid. We cancel a server order whose first invoice is still unpaid after two days, by default.
Result
Section titled ResultThe order's page shows Setting up while we set the deployment up, and its title becomes Your order is ready when the deployment and every add-on are active. Under What happens next, a game server ordered with Start it when the install finishes says it starts when the install finishes. The page checks again on its own, every few seconds at first and then less often, for as long as it is open. We email you when each service is ready.
A server appears under App Deployment, marked Setting up until it exists and Starting while we install the software. A game server starts once its install finishes, unless you turned off Start it when the install finishes on the order. In that case the deployment shows Stopped once the install is done: open it and select Start. A server that waits for a snapshot to be restored stays stopped, and so does a database.
Your code's first release starts once the order is paid. It builds the newest commit on the production branch, or pulls the image, and goes live once it passes its health check. A static site goes live once all its files are uploaded. Follow the build on the deployment's Releases tab (Deploy, promote and roll back releases).
Troubleshooting
Section titled Troubleshooting- 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. On the order page you do not see this: the summary shows Deposit under Due today and takes it with the order (Pay the first deposit). Through the API the order answers
403until the account has deposited, so add credit first. A static site and an account billed by invoice need none. The payment was declined.- The payment method did not pay, and the line under the button gives the bank's reason when it has one. Nothing was placed, and every choice stays. Choose another method under Pay with, and select the button again.
We could not work out an estimate for this order.- The Billed by use panel could not price the order. Check the line under the button for an answer that is missing or refused, and change it. The order itself is not affected.
scaling.max_memory_mb is the largest memory limit in MB: one of …- The API refuses a Largest memory limit below the memory an instance starts with, or a value that is not a step of 256 MB, 512 MB, 1 GB, 2 GB, 4 GB, 8 GB or 16 GB. The page offers only the steps the API accepts, so you meet this through the API.
Virtual machines and game servers need Server access, which costs $4.50 a month. Pro and Business include it.- A game server or a database needs Server access, and your account has none. The order page adds it to the order for you, so you meet this through the API. The answer is
402with the codepaid_plan_required. Send the order again withinclude_paid_planset totrueto buy it with the order (Order Server access with the server), or add the plan (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 page shows Your monthly budget is reached, and Usage budgets opens Billing, Usage, where you raise or remove the budget (Set a budget). The API answers
402with the codespend_limit_reached. You can also wait for the next month. Fill in the software's required fields.- The software needs details before we can install it. Fill in each required field on the software's card. A Git repository is never required.
- Could not load the catalogue
- The list of software did not load. Select Try again. If it keeps failing, support can place the order for you.
- Could not load the versions
- The version list did not load. The order still installs the latest release, and you can change the version later from the server's Software tab.
This application needs a database. Order a MariaDB server as well, or point it at one you already run.- The software you chose stores its data in MariaDB. Order a second server that runs MariaDB, or use a database you already have.
That location has no capacity for this plan.- The location filled up after you chose it. Choose another location, or a different size or hardware tier. Capacity differs by plan.
Give the server a name.- The Server name field is empty. Type a name of 2–48 characters.
Use at least 2 characters.- The Server name or the Deployment name has one character. Type a name of 2–48 characters.
Use 48 characters or fewer.- The name is longer than 48 characters. Shorten it. Spaces in a row count as one.
Use only letters, numbers, spaces and the marks -_.'!&()[],:+- The name has a character a name cannot use, such as
/,#,@or an emoji. Remove it. Include at least one letter or number.- The name is made only of marks and spaces, such as
--. Add a letter or a number. Remove the control characters.- The name holds a character you cannot see, often one that came with pasted text. Delete the name and type it again.
- The Dedicated IPv4 address card says the pool is sold out
- The location has no addresses left to sell. Choose another location, or order the server without one and order a floating IP later.
- The DDoS Shield profile card says
Add the dedicated IPv4 address first. - A profile protects addresses you own. Turn on the Dedicated IPv4 address card first.
- That snapshot is not on this account
- The address names a snapshot that was deleted, or one another account holds. Choose one of your snapshots under Snapshot, or Clean install.
This snapshot needs about … of disk and this plan has …. Choose a larger plan.- The restored files would not fit on the plan's disk. Choose a larger plan under Size. We compare the disk with the larger of two figures: the snapshot's size, and the disk the old server used when we took the snapshot.
Choose a snapshot, or a clean install.- One of my snapshots is selected with no snapshot chosen. Select one under Snapshot, or select Clean install.
- No snapshots can start a server yet
- A new server starts from a finished snapshot of a game server or a database, and your account holds none. Take one from a server's Snapshots tab (Take a server snapshot).
- Could not load your snapshots
- Select Try again, or choose Clean install.
Paste the repository's HTTPS address, such as https://github.com/you/site.git.- The address under Repository address is not a repository's address. Copy the
httpsaddress from the repository's page on its git host. - Could not connect GitHub
- GitHub did not finish connecting, or you left GitHub before approving. Select Connect GitHub again, or select Paste an address and paste the repository's address instead.
GitHub asked the owner of that account to approve access. Once they approve it, choose Connect GitHub again.- The repositories belong to a GitHub organization you do not own. Once one of its owners approves the request on GitHub, select Connect GitHub again.
- This access reaches no repository yet
- Your GitHub access has no repositories chosen. Add repositories to it on GitHub, then come back to the order page.
- Dockerfiles are not built
- The order names a Dockerfile, which App Deployment does not build. Build the image in your CI and select Deploy a container image instead to order it as a container image, or remove the Dockerfile and let the build detect the framework (Dockerfile? Deploy a container image).
An image is named like ghcr.io/you/site:1.4 or nginx:latest.- The image name has a space, or a character an image name cannot use. Type it as its host shows it.
Every website your plan includes is in use. Change plan, or add the websites pack.- A static site that keeps a plan price, such as an organization's, counts as one of the owner's plan's websites, and all of them are in use. Choose a larger plan, or add the websites pack. A static site ordered on your own account is not counted.
… is set by the platform. Choose another name.- The platform sets that variable itself, such as
PORTor a name that starts withCORITAN_. Rename your variable. The three namesCORITAN_ORG_API_KEY,CORITAN_WEBHOOK_SECRETandCORITAN_MICROSOFT_ADS_FEED_URLare accepted. Your plan runs a deployment in …. Choose fewer, or change plan.- An organization's plan, or the plan of a deployment on older terms, limits how many locations one deployment runs in. Choose fewer under Where it runs, or a plan that includes more. A deployment you order on your own account has no such limit.
Set the autoscaling target: a whole number from … to ….- Type a Target in the range its hint names, or turn Autoscaling off.
Names under apps.example.net are given to deployments by the platform.- A custom domain cannot be under the platform's own domain, where the deployment gets its address already. Remove that line from Domains.
Pay as you go needs prepaid credit, and the organization's owner is billed by invoice: choose Monthly per location- An organization's deployments are billed to its owner, whose account is billed by invoice. Choose Monthly per location, and place the order again.
Choose the database to bind.- The Database binding is on with no database chosen. Choose one, or turn the binding off. With no database deployment yet, order one, then bind it from this deployment's Settings tab.
No location can take a deployment right now.- No location has room for a deployment at the moment. Try again shortly.
- Your plan does not include this
- The plan behind the order does not include a choice you made, such as more locations, autoscaling, previews or protection. This happens to an organization's order, and to a static site on an account that has made no deposit yet. Change plan, make the first deposit, or turn that choice off.
Related
Section titled Related- Host a Minecraft server walks through the whole order for a Minecraft world.
- Deploy from a git repository connects GitHub and sets up previews and deploy hooks.
- Host a static site or a hybrid site sets a site's redirects, headers and server routes.
- Start a new server from a snapshot orders a server that starts with a saved copy of another server's files.
- How App Deployment is billed explains what a web service or a static site pays for and what each month includes.
- How game servers and databases are billed does the same for a server.
- Order a service explains ordering, payment and add-ons for every product.
With the API
Section titled With the APITwo requests list what the Catalogue offers. GET /api/v1/client/containers/catalog returns every piece of software you can order, each with its slug, name, description, category and versioned. Add ?category= to narrow the list.
curl https://api.coritan.com/api/v1/client/containers/catalog \
-H "Authorization: Bearer $CORITAN_TOKEN"
GET /api/v1/client/containers/catalog/{slug}/compose returns the versions of one piece of software. Each item in versions has a version_id and a name, and for Minecraft Java software also required_java and recommended_runtime_slug. Add include_snapshots=true to include test releases, and limit (1–500, default 200) to cap the list. An unknown slug answers 404.
curl "https://api.coritan.com/api/v1/client/containers/catalog/minecraft-paper/compose?limit=20" \
-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 pricing_id. On your own account, any price of the plan orders the same server, because it is billed by use. For a server, send its settings in config:
location- The location code, as the plan's locations list it.
name- The server name, 2–48 characters. It can use letters, numbers, spaces and
- _ . ' ! & ( ) [ ] , : +, and needs at least one letter or number. We remove spaces at the ends and turn spaces in a row into one, then count and store the name that way. When you leave it out, we use the top-levelhostname, which then follows the same rule. specialization_slug- The software's
slugfrom the catalogue. software_version- Optional. A
version_idfrom the compose response. Leave it out to install the latest release. runtime_template_slug- Optional. The
recommended_runtime_slugthat goes with the version you chose. variables- Optional. Values for the fields the software asks for, keyed by variable name.
restore_snapshot_uuid- Optional. The
uuidof one of your snapshots to start the server from. We install the software the snapshot recorded, whatever the software fields say, and restore the snapshot once the install finishes. Start a new server from a snapshot has the whole flow.
The plan sets the server's resources, whatever config says about them.
To buy add-ons in the same order, list them in addons, as Add-ons in the order describes. A server takes one floating IP, and only a /32. A DDoS Shield profile needs that floating IP in the same order. This example adds a dedicated address:
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": "survival-smp",
"config": {
"location": "fra",
"name": "survival-smp",
"specialization_slug": "minecraft-paper"
},
"addons": [
{"product_id": 31}
]
}'
When the response has requires_payment set to true, pay the invoice it names in invoice_id before setup starts. The errors you can act on:
403with"error": "plan_not_sold_here"and the messageThis plan is not sold here.: coritan.com sells no free server, andGET /api/v1/products/leaves the free plan out.422location is required (airport code, e.g. iad), orProvide template_uuid, specialization_slug, recipe_uuid, runtime_template_slug, or imagewhenconfignames no software.422for anamethat breaks the rule, with one of these messages:Server name must be at least 2 characters,Server name must be at most 48 characters,Server name can use letters, numbers, spaces and - _ . ' ! & ( ) [ ] , : +,Server name needs at least one letter or numberorServer name cannot contain control characters.422A server takes a single address. Choose the /32 floating IP.orA server takes one floating IP, so add at most one.for a floating IP inaddons.422with a message endingneeds an address to protect. Add a floating IP to this order.for a DDoS Shield profile without a floating IP.422That snapshot is not on this account, so a server cannot be created from it.for arestore_snapshot_uuidthat is not yours, or a message that startsThis snapshot needs aboutwhen the restored files would not fit on the plan's disk.
Order Server access with the server
Section titled Order Server access with the serverSend include_paid_plan set to true with a game server or database order to buy Server access (the addon-compute-paid add-on) on the same first invoice, instead of meeting the 402:
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,
"include_paid_plan": true,
"config": {
"location": "fra",
"name": "survival-smp",
"specialization_slug": "minecraft-paper"
}
}'
The invoice holds one line, Server access (service #NNN), at the add-on's active monthly price. The response lists the add-on in addons. When your credit covers the invoice, requires_payment is false and the message is Payment applied from credit balance; provisioning started. Otherwise requires_payment is true, invoice_id names the invoice, and the server 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.codeincluded_by_plan: your plan already includes Server access.detail.codealready_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.
Order any kind
Section titled Order any kindThe same request orders every kind of deployment. Name the kind in config.kind: template for a game server or a database from the catalogue, git, image, static or hybrid. A request without kind is a template order, so the examples above keep working.
On your own account, a git, image, static or hybrid order needs no plan. Leave product_id and pricing_id out, or send 0, and the order uses App Deployment's own product. If you name a CX plan instead, its memory becomes the deployment's starting memory limit, and its price sets nothing: the deployment is billed by use (How App Deployment is billed). A template order names the server's plan, and it is billed by use too (How game servers and databases are billed). A prepaid account needs the first deposit for anything that runs an instance, and the order answers 403 until it has made it. A game server or a database needs Server access, and the order answers 402 with the code paid_plan_required until the account has it.
An order for an organization (org_slug) keeps the plan price. It names both ids: pricing_id sets how the deployment is billed, the plan's hourly price to pay as you go, or a monthly or longer price to pay monthly per location for the instances the order runs. A static site is priced at nothing on either. An hourly price needs the minimum deposits on the owner's account. It also needs prepaid credit: an owner billed by invoice is refused with 422 on billing.mode, Pay as you go needs prepaid credit, and the organization's owner is billed by invoice: choose Monthly per location, and orders monthly.
curl -X POST https://api.coritan.com/api/v1/services/order \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"config": {
"kind": "git",
"name": "web-shop",
"placement": {"mode": "several", "locations": ["fra", "iad"]},
"source": {"git": {"repo_url": "https://github.com/example/web-shop", "branch": "main"}},
"build": {"preset": "nextjs"},
"runtime": {"port": 3000, "health_check_path": "/"},
"billing": {"spend_limit": "50.00"}
}
}'
Each kind reads the blocks that apply to it:
name- The deployment's name, by the same rule as a server's. Every kind but
templateneeds one. placement- Where it runs.
modeissingle,severalorall, andlocationslists location codes, or is an object by code with each location'sminandmaxinstances andsleep(neveroridle). Each location runs one instance unless you set more. Withoutplacement, a web service or a hybrid site on your own account runs in one location, the first that can run it. For an organization's order it runs in every location that can run it, and each location runs, and bills, its own instance. A game server or a database runs one server in each location it names, each with its own data, and cannot takeall. A static site takes noplacement, because the edge serves it (Choose locations and scaling). source- What it runs.
source.templatetakes the software keys above.source.gittakes the repository'srepo_url, itsbranch(otherwisemain) and theroot_diryour code is in, forgit,staticandhybrid, withinstallation_idandrepo_idfor a repository the GitHub app reaches, or atokenfor a private one elsewhere (Deploy from a git repository).source.image.refnames an image, such asghcr.io/example/api:1.2.0. buildandruntime- The build's
preset(Frameworks we build),install_command,build_command,start_commandandoutput_dir, and thewatch_pathsandignore_commandthat decide which pushes build (Choose which pushes build). Theportyour code listens on (otherwise3000), itshealth_check_path(otherwise/), and up to 10processes, such as aworkeror acronwith itsschedule. scaling- Autoscaling targets under
autoscale(rps,concurrencyorcpu), andsleep_after_seconds, from 60 to 604800, for a deployment that sleeps when idle. On your own account it also takesmax_memory_mb, the largest memory limit an instance may grow to: 256, 512, 1024, 2048, 4096, 8192 or 16384, and not below the memory the deployment starts with. Leave it out for 4096. An organization's order, which keeps the memory of its plan, refuses it with422. networking,git,envandbindings- Custom
domainsandprotection, whether to buildpreviewsand comment on pull requests, the variables with theirenvironment(Environments and variables), and the Coritan services to connect (Variables from Coritan services). billingspend_limitcaps the deployment's month, such as"50.00".modeandoverageare for an order that keeps a plan price, such as an organization's:modeispaygorcommitand must match the price, withpaygtaking the hourly price andcommita monthly or longer one, andoverageisblock(the default) orallow. On your own account the order accepts both and ignores them.
POST /api/v1/checkout/quote takes the same body and prices the order without placing it. For an order billed by use it answers no line for the deployment, billing_mode usage, an estimate, and paid_plan and deposit, which say whether the order waits for Server access or the first deposit and the minimum to deposit (Quote an order billed by use). For a web order, estimate holds included_monthly, the free amounts each month, and profiles: the cost of a month after those amounts for three sample months, idle, light and busy. Each profile names what it assumes (hours, memory_gib, cpu_vcpu, requests_millions and egress_gb), the usage of each meter and what is billable after the free amounts. assumptions gives the instances counted, which is the minimum of every location, and the region that prices data out. A static site's profiles cost 0.00. For an order that keeps a plan price it answers a line for each location, and under deployment each location's instance_hourly price and the allowances the kind uses: what your plan includes, what your deployments have used this month, and the unit_price of use past the allowance.
A refusal names the field it is about, such as {"errors": ["Choose at least one location"], "field": "placement.locations"}, with 422. More locations than the plan allows, or previews, protection or autoscaling on a plan without them, answer 402 with the plan's limit. That applies to an organization's order, and to a static site on an account that has not yet made the first deposit. Any other order on your own account has these open. A static site ordered for an organization is one more of the owner's plan's websites, so one past them answers 402 with "entitlement": "websites_max". A static site on your own account is billed by use and is not counted. A floating IP, a DDoS Shield profile and Snapshot Storage attach to a server, so only a template order takes them in addons: another kind's order that names one answers 422. An account, and each organization, can have 20 deployments other than servers by default, counting orders not set up yet; one more answers 409 with "code": "deployment_limit" and the limit. A 404 for a kind other than template means those kinds are not open yet.
API operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/client/containers/catalog | Browse platform specializations available for deploy composition |
GET | /api/v1/client/containers/catalog/{slug}/compose | Get software versions + recommended runtimes for a specialization |
POST | /api/v1/checkout/quote | What an order would cost, without placing it |