Skip to main content

cpod-apps bundle

Create a signed deployment bundle.

Usage

cpod-apps bundle [path] [options]

Arguments

ArgumentDescriptionDefault
pathApp folder to bundle. (current directory)

Options

OptionDescriptionDefault
-o, --output <path>Output directorydist
-k, --private-key <path>Private key for signingAuto-detected
--no-signSkip signing-
-v, --verboseShow detailed output-

Examples

Basic Bundle

cpod-apps bundle

Creates dist/my-app-1.0.0.zip.

Custom Output

cpod-apps bundle -o ./releases

With Specific Key

cpod-apps bundle -k ~/.cpod/private.pem

What Gets Bundled

The bundle includes:

  • All source files (excluding node_modules, .next, etc.)
  • app.json - App manifest
  • config.json - Auto-generated with SDK analysis
  • Dockerfile - Container config

config.json

This file is automatically generated during bundling:

{
"version": "1.0",
"app_id": "my-app",
"app_version": "1.0.0",
"generated_at": "2024-01-15T10:30:00.000Z",
"sdk_modules": ["auth", "chat", "users"],
"sdk_functions": ["getUser", "chat.complete", "authenticateUser"],
"env_vars": {
"required": ["NEXT_PUBLIC_CPOD_BASE_URL"],
"optional": ["NODE_ENV"]
},
"integrity": {
"algorithm": "ECDSA-P256-SHA256",
"signature": "...",
"signed_at": "2024-01-15T10:30:00.000Z"
}
}
info

config.json is only created inside the bundle. It's not written to your local project folder.

Signing

Bundles are signed for integrity verification using ECDSA-P256-SHA256.

Key Locations

The CLI looks for keys in this order:

  1. -k flag path
  2. .cpod/private.pem (project)
  3. ~/.cpod/private.pem (global)

Generate Keys

cpod-apps keygen

See keygen for details.

Excluded Files

These are automatically excluded from bundles:

  • node_modules/
  • .next/
  • dist/
  • .git/
  • coverage/
  • .env and .env.local