Appearance
Getting Started
Prerequisites
- An AWS account
- An IAM access key able to create IAM users, roles, and policies — needed once, pasted into
keel auth setup - Docker (for local builds)
- OpenTofu (auto-downloaded on first use)
The AWS CLI is not required
Keel never reads ~/.aws/credentials, profiles, or the SSO cache — every AWS call uses Keel's own per-project credentials under ~/.keel/contexts/, and the OpenTofu subprocess actively strips ambient AWS CLI configuration so it can't leak in. You can bootstrap Keel on a machine that has never run aws configure.
One current limitation: keel auth setup accepts a key ID and secret only, with no session-token field, so SSO/temporary STS credentials cannot be used for the one-time setup. Use a long-lived IAM access key with IAM-admin permissions, then keep it somewhere safe — it's also your recovery path if you lose your MFA device.
Install
bash
brew install devtide-llc/tap/keelOr build from source:
bash
git clone https://github.com/devtide-llc/cloud-pilot.git
cd cloud-pilot
make build # build to bin/keel
./bin/keel versionYour first deploy
bash
# Initialize a new project (interactive: name, region, mode, port, pipeline)
keel init
# Edit keel.yml to match your app
vim keel.yml
# Set up IAM roles, your Keel admin user, and its MFA device (admin, one-time)
keel auth setup
# Start a session — prompts for a one-time code
keel auth login
# Provision infrastructure
keel up
# Deploy your application
keel deploy
# Check status
keel status
# Launch the interactive dashboard
keel dashboardWhat just happened
keel initwrote akeel.ymldescribing your app — its name, region, infrastructure mode, services, and pipeline source — plus an annotatedkeel.yml.examplelisting every option Keel understands, to copy from as the app grows.keel auth setupis a one-time, guided flow that creates three least-privilege IAM roles (keel-admin,keel-developer,keel-viewer), an IAM user for you that can assumekeel-adminand nothing else, and an MFA device for that user. See The Auth Model.keel auth loginexchanged your key + MFA code for an 8-hour STS session.keel upgenerated OpenTofu HCL fromkeel.ymland applied it: VPC, cluster, registry, load balancer, and any add-ons.keel deploybuilt your image (via CodeBuild by default), registered a task definition revision per service, ran yourrelease:command, and promoted each service.
TIP
Run keel auth setup --dry-run first to preview every IAM policy document Keel would create, without touching AWS.
Next steps
- Configuration — everything
keel.ymlcan express - Deployments — how deploys work, rollback, and the deploy lock
- Team Onboarding — adding teammates with MFA-gated access
- Deploying Rails — a complete worked example