Skip to main content
Unkey Deploy is currently in private beta. To get access, reach out on Discord or email support@unkey.com.
A deployment represents a specific version of your app running in an environment. Each deployment is immutable: once created, its image, configuration, and variables don’t change.

From push to live

Every deployment follows the same steps, whether triggered by a GitHub push, the CLI, or the dashboard.
Deployment progress
1

Event received

Unkey receives a trigger: a GitHub webhook from a push, a CLI unkey deploy command, or a manual deployment from the dashboard. The deployment record is created with status Pending.
2

Queued

The deployment enters the build queue. Unkey allocates build capacity and prepares to fetch your source code. If you deployed a pre-built image via the CLI, this step is skipped.
3

Building image

Unkey fetches your source code from GitHub (using the commit SHA from the push) and runs docker build with your Dockerfile on remote build infrastructure. Build logs stream to the Deployments tab in real time.If the build fails (missing dependencies, Dockerfile errors), the deployment moves to Failed and stops here.
4

Deploying containers

The built image is scheduled across your configured regions. Unkey creates the requested number of instances in each region and waits for them to start.If you configured a health check, Unkey sends requests to your health endpoint and waits for healthy responses before proceeding.
5

Assigning domains

Unkey generates domains for the deployment:
  • Commit domain: a permanent URL tied to this specific commit
  • Branch domain: points to the latest deployment from this branch
  • Environment domain: points to the latest deployment in this environment
  • Live domain (production only): points to the current live deployment
See Wildcard domains for the full naming pattern.
6

Finalizing

Routes are configured and traffic begins flowing to the new deployment. The deployment status moves to Ready.In production, this deployment becomes the current live version. The previous live deployment transitions to standby after 30 minutes, keeping it available for a quick rollback.In preview environments, deployments stay running as long as they receive traffic. Idle preview deployments (zero requests for six hours) are automatically archived.

Troubleshoot failed deployments

When a deployment fails, check the build and runtime logs in the Deployments tab. Common causes:
  • Dockerfile syntax errors or missing dependencies during the build step
  • Application crash on startup (check the runtime logs)
  • Health check failures if your app doesn’t respond on the configured port
Fix the issue in your code and push again to trigger a new deployment.

Next steps

Rollbacks & promotions

Revert to a previous deployment or promote a specific version

Builds

How Unkey builds your container images
Last modified on March 30, 2026