Easy Deploy

Ship safely from the dashboard—choose a branch, run preflight checks, then deploy with instant rollback.


Easy Deploy (Branches, Preflight, Rollback)

Easy Deploy lets you ship from the dashboard with confidence: choose a Git branch, run Preflight checks, review what will change, and push the big button. If anything breaks, roll back instantly.

1) Pick a branch

  • Go to Project → Deployments → Easy Deploy.
  • Choose your Repository and Branch (e.g., main, release/1.2, hotfix/*).
  • Optional:
    • Auto-deploy on push (watch this branch and deploy new commits)
    • Require approval (hold until someone clicks Approve)
    • Ignore CI-skip (force deploy even if commit says [skip ci])

Use a dedicated release/* branch for Production. Keep main wired to Staging for quick previews.

2) Preflight (dry-run safety)

Click Run Preflight. We simulate the deployment and surface blockers and warnings before any traffic moves.

What Preflight checks

  • Detection — framework/runtime or Dockerfile resolution
  • Build plan — cache hits/misses, estimated build time, artifact size
  • Env & secrets — required variables present? secret refs resolvable?
  • Ports & health — server binds 0.0.0.0 and respects PORT; readiness path set (e.g., /readyz)
  • Databases — connection URLs exist; optional ping to mdx-service dbs
  • Domains — certificate/validation state for custom domains
  • Migrations (optional) — detect pending SQL files or migration scripts

Preflight shows Blockers (must fix) and Warnings (safe to deploy but review). We won’t let you deploy with blockers.

preflight checklist
# You should see ✓ on these:

$ detect framework/runtime — Next.js / Django / Go / Dockerfile

$envDATABASE_URL, PORT, JWT_SECRET
$health/readyz → 200
$domainsDNS OK · SSL ready

3) Deploy

  • Click Deploy. We build, package, and start the new revision.
  • You get a Preview URL (TLS) immediately for smoke-testing.
  • When health checks pass, we promote to active traffic.

Want a pause before traffic moves? Enable Approval Gate after build—great for manual QA on the Preview URL.

4) Rollback (instant safety net)

If the release misbehaves:

  • Open Project → Deployments.
  • Select the last healthy deployment → Rollback.
  • Traffic switches back immediately; the broken revision is preserved for debugging.
good rollback hygiene
# Before rollback, capture context:
$openRuntime Logs (errors around the new build)
$snapshotmetrics p95 latency / error rate

Configuration (branch rules)

You can pre-configure Easy Deploy rules per environment:

  • Branch — the default branch for this environment (e.g., Production → release/*, Staging → main)
  • Auto-deploy on push — on/off
  • Approval required — on/off
  • Preflight strictness — block on warnings (paranoid) or only on blockers (default)
  • Migration mode — run DB migrations automatically / ask first
  • Health grace period — how long to wait before declaring failure
  • Deploy lock — temporarily prevent deploys (maintenance window)

Staging: auto-deploy on every push to main. Production: require approval, block on warnings, longer health grace period.

What counts as a blocker?

  • Missing PORT binding or server bound to localhost only
  • Unresolved secrets or env vars required by your service
  • Failing health check or no readiness path configured
  • Database unreachable (when “ping DB in preflight” is enabled)
  • Domain misconfigured (requested as mandatory in this environment)

Warnings include: large artifact size, high cold-start estimate, outdated runtime, low free disk, or near DB connection limits.

After deployment

  • Logs — switch between Build and Runtime streams, filter by service
  • Metrics — CPU/mem/disk/net + p50/p95/p99 latency if the runtime exports it
  • Alerts — enable default recipes (error rate spike, p95 latency breach, conn % near max)

FAQ

Can I deploy from a specific commit?
Yes—use the Commit picker in Easy Deploy. We’ll build that SHA from GitHub.

What if two deploys start at once?
We auto-cancel the older in-flight build for the same environment, unless you disable this in Settings.

Can I canary or split traffic?
Advanced rollouts (percent traffic, region-by-region) are supported in the Rollout panel of a deployment. Easy Deploy defaults to “promote on healthy.”

Do I need the CLI?
No. Easy Deploy is dashboard-only. CLI support will arrive later.