LaunchPad

Deploying an app

How LaunchPad builds and ships your app with Kamal, and what each deploy does.

LaunchPad deploys with Kamal. You don't write a deploy.yml — LaunchPad generates it from your app's settings and runs the deploy for you, streaming the log live.

What you provide

What each deploy does

  1. Pre-deploy backup — if the app has a database with pre-deploy backups enabled, LaunchPad snapshots it first so the deploy can be rolled back.
  2. Build & push — builds the image and pushes it to your registry.
  3. Migrate — runs db:migrate before the new version takes traffic.
  4. Cutover gated on readiness — the Kamal proxy only promotes the new release once /readyz reports the database, migrations, and job queue are all healthy. A release that boots but can't reach its database is never promoted.
  5. Auto-rollback — if the post-cutover health check fails, LaunchPad rolls back to the previous image automatically. See Rolling back a deploy.

Watching a deploy

The deploy log streams live to the app's Releases tab. If a deploy fails, the reason is captured on the deployment record and surfaced as an attention item.

← Back to docs