Getting Started From zero to a running app on your own AWS account
Cumulus is a deployment platform for Rust, Python, and static sites. You connect your own AWS account; Cumulus handles the complexity. Everything runs in your account: EC2 instances, Lambda functions, S3 buckets. You pay AWS directly; Cumulus charges a flat monthly fee.
🦀 Rust apps
Axum, Actix, Tower. No host toolchain needed. EC2 or Lambda.
🐍 Python apps
Django, FastAPI, Flask, bare handlers. A uv-managed interpreter with pip/poetry/pipenv support. EC2 or Lambda.
🌐 Static sites
Next.js, Vite, Hugo, or any npm build. Synced to S3 with correct cache headers, optional CloudFront CDN.
🔒 Zero-trust deploys
Health-gated deploys with automatic rollback. Secrets live in SSM, never in build artifacts.
Prerequisites
-
A Cumulus account. Sign in with GitHub at
cumulus.collectif.dev. -
An AWS account. Your apps run in your own account. Connect it to Cumulus once after signing up:
This walks you through creating a cross-account IAM role so Cumulus can deploy on your behalf. No long-lived credentials needed.cumulus aws connect -
A KMS key in your AWS account. Cumulus uses it to encrypt your secrets and artifacts at rest. Create one once and note the ARN:
These use the AWS CLI. Install and configure it first if you haven't. It's the only step that needs the AWS CLI; everything after runs throughaws kms create-key \ --description "cumulus" \ --query KeyMetadata.Arn --output text # → arn:aws:kms:us-east-1:123456789012:key/<uuid> aws kms create-alias \ --alias-name alias/cumulus \ --target-key-id <key-id>cumulus.
Install the CLI
Install the CLI with the one-line script:
# macOS / Linux
curl -fsSL https://cumulus.collectif.dev/install.sh | sh
# Verify
cumulus --version
cumulus --help
Deploy Rust, Python, and static sites to your own AWS account
Usage: cumulus [OPTIONS] <COMMAND>
Commands:
init Scaffold a cumulus.toml interactively
login Connect to the Cumulus control plane
link Register this project and its apps
app Deploy and manage apps
server Provision and manage servers
aws Connect your AWS account
...
Usage: cumulus [OPTIONS] <COMMAND>
Commands:
init Scaffold a cumulus.toml interactively
login Connect to the Cumulus control plane
link Register this project and its apps
app Deploy and manage apps
server Provision and manage servers
aws Connect your AWS account
...
Quick start
-
Log in. This opens your browser to sign in with GitHub:
cumulus login -
Scaffold a config in your project directory. Cumulus detects your runtime from project files and asks a few questions:
cumulus initScaffolding cumulus.toml. Press Enter to accept the default.
Project name [my-api]: my-api
AWS region [us-east-1]:
Detected runtime: rust (from Cargo.toml)
Runtime (rust / python / static) [rust]:
Target (ec2 / s3 / lambda) [ec2]:
...
✓ wrote cumulus.toml -
Register the project with Cumulus. This reads your
cumulus.tomland creates the project and apps on the control plane:cumulus link -
Deploy. See the guides below for each runtime and target.
Tip: A health check is optional but recommended. When you add an
[app.health_check] block, Cumulus probes that endpoint after starting the new version and automatically rolls back if it doesn't return a 2xx, so a bad release never takes traffic. Without one, Cumulus waits briefly for the process to settle, then cuts over.