---
title: Deployments
description: The lifecycle, phases, and statuses of an Atlasflow deployment.
order: 2
---

A **deployment** is a single attempt to build and run a specific commit of your project. Each push to your default branch creates a new deployment, and you can also trigger one manually. See [Redeploys](/docs/guides/redeploys.md).

## Lifecycle

Each deployment moves through three phases:

1. **Initializing**: Atlasflow prepares the deployment and clones your repository at the commit.
2. **Building**: it builds a container image from your Dockerfile or an auto-detected build plan, then pushes the image to the registry. Follow along in the [build logs](/docs/observability/build-logs.md).
3. **Deploying**: it starts a microVM running your container and runs health checks until your app responds on `GET /`.

Once health checks pass, traffic is routed to the deployment and it becomes the active version behind your project's default hostname.

## Statuses

| Status         | Meaning                                            |
| -------------- | -------------------------------------------------- |
| `PENDING`      | Queued, not yet started.                           |
| `INITIALIZING` | Setup before the build begins.                     |
| `BUILDING`     | The container image is being built.                |
| `DEPLOYING`    | The VM is starting and health checks are running.  |
| `RUNNING`      | Healthy and serving traffic.                       |
| `STOPPED`      | No longer running.                                 |
| `FAILED`       | The build or deploy did not complete successfully. |

## Health checks and timeouts

After a successful build, Atlasflow probes your container with `GET /` on port 3000 every 15 seconds (5-second timeout). Three consecutive failures mark the deployment unhealthy. A deployment that doesn't become healthy within the deployment window is marked `FAILED`.

See [Container requirements](/docs/guides/container-requirements.md) for the exact probe behavior.

## Deployment metadata

Each deployment records the branch, commit SHA, commit message, and author, along with build duration and per-phase timing. You can inspect all of this, plus build and runtime logs, in the deployment detail view.

## Preview and default hostnames

- Every deployment gets a unique **preview URL** so you can test it in isolation.
- Your project's **default hostname** always points at the latest successful deployment.

See [Deploy your first project](/docs/guides/first-deployment.md) for the hostname formats.

## Next steps

- [Builds](/docs/concepts/builds.md): how the image is produced.
- [Redeploys](/docs/guides/redeploys.md): trigger deployments manually.
- [Build logs](/docs/observability/build-logs.md): watch a deployment build in real time.