---
title: Deployment
description: Generate Forge deployment configuration and deploy applications through managed pipelines.
moved_from:
  - reference/tools/terraform.md
  - reference/tools/terraform-cloud.md
  - reference/tools/azure.md
  - reference/tools/azure-devops-services.md
---

# Deployment

Configure the application in its AppHost and infrastructure inputs, then deploy through Forge's Azure DevOps pipelines. Use [Aspire Publish](aspire-publish.md) to generate pipeline YAML and infrastructure configuration.

| Task | Guide |
| --- | --- |
| Generate or refresh deployment configuration | [Aspire Publish](aspire-publish.md) |
| Release with validation gates and rollback | [Blue-Green Deployments](blue-green-deployments.md) |
| Preview a pull request in a live slot | [PR Slot Deployments](pr-slot-deployments.md) |
| Configure a frontend hostname | [Custom Subdomains](custom-subdomains.md) |
| Publish application documentation | [Documentation Site](documentation-site.md) |

## Terraform workflow

For application delivery, set the inputs supplied by the project templates or generated configuration. Pipelines pass these values to Forge's Terraform modules; the normal consumer workflow does not require running Terraform locally. Open Terraform Cloud through the link on your identity-provider landing page to inspect the managed infrastructure workflow.

Use the [Terraform module reference](../../reference/terraform/index.md) for inputs, outputs, and usage. For pipeline behavior, use [Pipelines](../../reference/pipelines.md). Search [Troubleshooting](../../troubleshoot/index.md) for the exact error when a deployment fails.

### Generated documentation ownership

The documentation build generates everything under `docs/reference/terraform/`. Edit the module's `README.md` under `src/terraform/`, not the generated page:

- A top-level module README becomes `<module-name>/index.md`.
- A README in `modules/<name>/` becomes `<module-name>/<submodule-name>.md`.
- A README in `examples/<name>/` becomes `<module-name>/examples/<example-name>.md`.

The generator qualifies nested page titles with the module name so identically named submodules remain distinguishable. The [module-reference generator](https://github.com/saif-corp/forge/blob/main/docs/hooks/terraform_modules.py) owns that publication mapping.

## Why these deployment services

Forge uses Azure to host APIs and web applications and connect them to SAIF's on-premises resources. API Management and support for .NET runtimes motivated that platform choice. Azure DevOps supplies the deployment automation alongside SAIF's repository and work-planning workflows; these task guides document Forge's use of it rather than the generic product catalog.

For product-level guidance, use [Terraform documentation](https://developer.hashicorp.com/terraform), [Terraform Cloud](https://www.terraform.io/cloud), or the [Azure portal](https://portal.azure.com).
