CloudPilot Support

Creating a project

A project is one deployable thing on one server: a site, an API, a worker.

Creating one#

Projects → New project, then:

  1. Name — how it appears in the panel.
  2. Server — which connected machine it deploys to.
  3. Runtime — how it should be run. This cannot be guessed; pick the one that matches your application.
  4. Environment — production, staging or preview. This is a label used for filtering; it does not change deployment behaviour.

Runtimes#

Runtime For
static Plain HTML/CSS/JS, or the built output of React, Vue, Svelte, Astro, or any other bundler
node_pm2 A Node application kept alive by PM2
express An Express application
laravel A PHP/Laravel application
docker Anything you ship as a container

Choosing between static and a Node runtime#

This is the one people get wrong. The question is not what you wrote it in, it is what runs in production:

  • If your build produces a folder of files that a web server just hands out — dist/, build/, out/ — that is static. A React app is static once it is built.
  • If a process has to stay running to answer requests, that is node_pm2 or express.

A plain folder of index.html, style.css and script.js with no build step at all is also static.

"Invalid runtime" when creating

The runtime must be one of the five above, spelled exactly. If you are calling the API directly rather than using the panel, that error means the value sent was not on the list.

Protecting a project#

Anything customer-facing should be marked protected. On a protected project, deploys, rollbacks and deletions wait for someone else to approve them. See Approvals for risky actions.

This is worth doing before your first busy week, not after your first bad deploy.

Next#

Did this not answer your question?

Raise a ticket and someone will pick it up. Sign in with the same account you use for the panel.

Raise a ticket