Prerequisites
- The
keelCLI — see Install. - Docker running on this machine.
- A repository to deploy. Any directory works; the sample does not need git.
Set up a repository
1
Create the starter files
From the repository root:
keel init never overwrites files that already exist. You get two:keel.yaml— one sample deployment namedproductionwith one variable,GREETING, and two steps that echo it.deploy/Dockerfile— the environment the steps run in. The starter is plain Alpine withbash,curl, andgit.
2
Look at the configuration
Open Every variable becomes an environment variable inside the run and a form
field in the UI. Every step is a shell script run inside a container built
from the Dockerfile, with the repository mounted at
keel.yaml. The parts that matter:keel.yaml
/workspace.3
Validate it
Deploy from the UI
1
Start Keel Dev
keel.yaml. The file is re-read on every page load,
so edits show up on refresh.2
Create a target
Open the
production deployment and create a target — call it local.
A target is one concrete place the deployment goes, and it keeps its own
values and run history. Real projects have one per client or per
environment.3
Fill in the variables
The target page renders a form from the variable declarations. Required
fields that have no default are marked with a red asterisk;
GREETING
has a default, so you can leave it or change it. Press Save variables.Values are stored encrypted in .keel/dev.db. Because GREETING has a
default, the target’s row on the deployment page already reads Ready to
deploy; a variable without a default would show Needs 1 value until
you filled it in, and the Deploy button would stay disabled.4
Deploy
Press Deploy now. Keel builds the environment image from
deploy/Dockerfile, starts a container with the repository mounted and
GREETING exported, and runs the two steps. The run page shows a live log
and a status per step:The run finishes with the status succeeded. You just deployed.
Deploy from the terminal
Everything the UI does, the CLI does headlessly, which is how you wire Keel into scripts and CI:keel deploy streams the same log to the terminal and exits non-zero when a
step fails.
Make it real
Replace the sample with your project’s actual deployment:Author a deployment
Turn a deploy script and a README section into steps and variables.
Environment images
Put the AWS, GCP, Terraform, or kubectl tooling your steps need into the Dockerfile.
Variables
Types, validation, secrets, defaults, and the form Keel renders from them.
Keel Cloud
Give the whole team a browser-based way to deploy, with roles and push-triggered runs.