Appearance
Migrating from Kamal
| Kamal | Yoho |
|---|---|
config/deploy.yml | yoho.yml + x-yoho in compose.yaml |
-d dest, deploy.<dest>.yml | destinations:, -d dest |
| roles | not yet; one Server per Destination |
| accessories | Services with x-yoho.stateful: true |
.kamal/secrets | .yoho/secrets (same dotenv and $(...)) |
env.secret | x-yoho.secrets (NAME:KEY aliases) |
env.clear | compose environment: |
| kamal-proxy | kamal-proxy (x-yoho.proxy) |
.kamal/hooks | .yoho/hooks (same names, KAMAL_* becomes YOHO_*) |
KAMAL_VERSION in containers | YOHO_VERSION (plus YOHO_APP, YOHO_DESTINATION, YOHO_SERVER, YOHO_SERVICE) |
Steps
- Express roles and accessories as Services in
compose.yaml; databases getstateful: true. yoho init; setapp,servers.primary.ssh,destinations. Mapbuilder.archtobuilder.platforms,builder.remotetobuilder.location: remote.- Proxy:
proxy.hosttox-yoho.proxy.hosts,app_porttoport,healthcheck.pathtohealth_path,ssltotls. - Move
.kamal/secretsto.yoho/secrets; list needed keys inx-yoho.secrets. - Copy hooks and rename
KAMAL_*variables. yoho config check, then deploy. Keep Kamal's proxy stopped or on other ports until Yoho is healthy; reuse accessory volumes after a dump.
The agent skill (yoho skill install) includes a longer guide an AI agent can follow.