Overview

CCP is the CLI for deploying code to Cluster — serverless functions on V8 isolates and long-running compute services on managed instances.

CCP CLI

CCP (Cluster Compute Platform) is the command-line tool for deploying code to Cluster. It manages two kinds of deployable workload:

  • Serverless functions — JS/TS handlers running in V8 isolates with sub-millisecond cold starts.
  • Compute services — long-running services from container images, reached at a public HTTPS hostname.

Plus the supporting resources: managed Postgres databases, file stores, and custom domains.

What You Can Do

  • Deploy functions — Ship JS/TS handlers that receive a Request and return a Response
  • Deploy compute services — Long-running services from container images, with HTTPS hostnames and deployment history
  • Serve static sites — Deploy SPAs and static sites with a public/ directory
  • Custom domains — Add your own domain with automatic Let's Encrypt TLS
  • Local development — Run a local V8 isolate with hot reload via ccp dev
  • Manage storage — Upload and serve static files via the edge CDN

Quick Example

# Serverless function
ccp init my-app
cd my-app && ccp deploy --prod
# → https://my-app.clusterbase.dev

# Compute service
ccp compute deploy --name my-api --image ghcr.io/me/api:v3 --port 8080
# → https://my-api.clusterbase.dev

Concepts

ConceptDescription
FunctionA JS/TS module exporting a handler(request: Request): Response
Compute serviceA long-running container deployed via ccp compute deploy, reached at <name>.clusterbase.dev
DeploymentA versioned snapshot of a function's code or a compute service's image
OrganizationA group that owns functions, services, and other resources
Preview URLEvery function deployment gets https://{deployment-id}.clusterbase.dev
Production URLThe active deployment serves https://{name}.clusterbase.dev

Project Structure

After running ccp init, your project looks like:

my-app/
  index.ts              # Your handler
  package.json          # Scripts: dev, deploy
  tsconfig.json         # TypeScript config
  .cluster/config.json  # Links to your remote function
  CLUSTER.md            # Quick reference
  .gitignore

On this page