--cvm-id is provided or phala.toml contains a CVM ID, updates the existing CVM instead.
Usage
Basic Options
| Flag | Default | Description |
|---|---|---|
-n, --name <name> | directory name | CVM name |
-c, --compose <path> | docker-compose.yml | Docker Compose file path |
-t, --instance-type <type> | auto-selected | Instance type (e.g., tdx.small, tdx.medium) |
-r, --region <region> | auto-selected | Preferred region (e.g., us-west, eu-central) |
-e, --env <value> | Environment variable (KEY=VALUE) or path to .env file. Repeatable | |
--kms <type> | phala | KMS type: phala, ethereum/eth, or base |
--wait | false | Wait for deployment/update to complete |
--ssh-pubkey <path> | ~/.ssh/id_rsa.pub | SSH public key path for access |
--dev-os | false | Use development OS image (requires SSH key) |
--public-logs | true | Make CVM logs publicly accessible |
--no-public-logs | Disable public log access | |
--public-sysinfo | true | Make CVM system info publicly accessible |
--no-public-sysinfo | Disable public system info access | |
--listed | false | List CVM on Phala Trust Center |
--no-listed | Don’t list CVM on Trust Center |
Advanced Options
| Flag | Default | Description |
|---|---|---|
--cvm-id <id> | CVM ID for updating existing deployment | |
--disk-size <size> | 20G | Disk size with unit (e.g., 50G, 100G) |
--image <image> | latest | OS image version |
--node-id <id> | Deploy to specific node ID | |
--custom-app-id <id> | Use custom App ID (requires —nonce for PHALA KMS) | |
--nonce <nonce> | Nonce for deterministic app_id generation | |
--pre-launch-script <path> | Path to pre-launch script | |
--private-key <key> | Private key for on-chain KMS (ethereum/base) | |
--rpc-url <url> | RPC URL for blockchain interaction | |
--debug | false | Enable debug logging |
Deprecated Options
The following options are deprecated and will be removed in future versions:--vcpu <count>- Use--instance-typeinstead--memory <size>- Use--instance-typeinstead--env-file <path>- Use-e <path>instead--kms-id <id>- Use--custom-app-idinstead--uuid <uuid>- Use--custom-app-idinstead
Examples
Simplest deployment (auto-select everything)
Specify instance type and region
Deploy with environment variables
Deploy with .env file
Deploy and wait for completion
Update existing CVM
Deploy with custom name
Deploy with larger disk
Deploy with dev OS image and SSH access
Deploy with Ethereum KMS
Deploy with Base KMS
Deploy with custom App ID
Deploy to specific node
Deploy with pre-launch script
Deploy unlisted CVM (private)
Error Codes
Common deployment errors:| Code | Description | Solution |
|---|---|---|
| ERR-1001 | Instance type not found | Check available types with phala instance-types |
| ERR-1002 | No available resources match requirements | Try different instance type or region |
| ERR-1003 | Insufficient CPU capacity | Reduce CPU requirements or try different region |
| ERR-1004 | Insufficient memory | Reduce memory requirements or try different region |
| ERR-2003 | OS image not available | Use --image to specify valid image version |
| ERR-2005 | Node not accessible | Node may be offline, try different node or omit --node-id |
Instance Types
Common instance types:tdx.small- 2 vCPU, 4GB RAMtdx.medium- 4 vCPU, 8GB RAMtdx.large- 8 vCPU, 16GB RAMtdx.xlarge- 16 vCPU, 32GB RAM
phala instance-types

