Skip to content

Command Line Tools

wheels deploy init

Scaffold the files wheels deploy reads: config/deploy.yml and .kamal/secrets. Also creates .kamal/hooks/ (empty) for optional hook scripts.

wheels deploy init [--service=<name>] [--image=<path>] [--registry-username=<user>] [--force]
FlagDescription
--service=<name>Service name to bake in. Defaults to the project directory basename.
--image=<path>Image path. Defaults to <service>/web.
--registry-username=<user>Registry username. Defaults to changeme — you’ll edit it.
--forceOverwrite existing files. Without this, an existing config/deploy.yml aborts with DeployMainCli.InitAlreadyExists.
  • config/deploy.yml — a starter manifest with service, image, servers, registry, env stubs.
  • .kamal/secrets — key/value placeholders for the registry password and any app secrets.
  • .kamal/hooks/ — empty directory. Drop executable pre-deploy, post-deploy, or post-deploy-failure scripts here later.

Add .kamal/secrets* to .gitignore before running.

example
wheels deploy init
wheels deploy init --service=myapp --image=ghcr.io/myorg/myapp --registry-username=myorg

After running, edit both files — see Your First Deploy for the walk-through.