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
Requestand return aResponse - 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.devConcepts
| Concept | Description |
|---|---|
| Function | A JS/TS module exporting a handler(request: Request): Response |
| Compute service | A long-running container deployed via ccp compute deploy, reached at <name>.clusterbase.dev |
| Deployment | A versioned snapshot of a function's code or a compute service's image |
| Organization | A group that owns functions, services, and other resources |
| Preview URL | Every function deployment gets https://{deployment-id}.clusterbase.dev |
| Production URL | The 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