Deployment
Step-by-step guide for deploying the Volare backend and frontend to staging and production environments.
Overview
Section titled “Overview”Deploying requires two sequential steps:
- Build (automatic) — Merging a PR to
masterbuilds Docker images and uploads them to AWS ECR. This does not deploy anything — it only prepares the images. - Deploy (manual) — A developer triggers the deploy workflow from the
infra-volarerepository to put those images on a server.
The deploy process is the same for both staging and production — the only difference is the environment selected in the workflow.
Prerequisites
Section titled “Prerequisites”- Access to the infra-volare GitHub repository
- A merged PR in the
volarerepository (or a known image tag to deploy)
Automated Pipeline (after merge)
Section titled “Automated Pipeline (after merge)”When a PR is merged to master, two workflows run automatically in the volare Actions tab:
- Tag on Merge — Creates a semantic version tag (e.g.,
v1.3.0) based on conventional commit messages - Build & Push to ECR — Builds Docker images for backend and frontend and pushes them to AWS ECR, tagged with the version
Before deploying, verify both workflows completed successfully in the Actions tab. The version tag created (e.g., v1.3.0) is the value you will use as the image tag when deploying. You can find it in the repository tags.
Deploying
Section titled “Deploying”Once images are built and available in ECR, trigger the deploy:
- Go to infra-volare Actions
- Select the Deploy infrastructure workflow
- Click Run workflow
- Fill in the form:
| Field | Description | Example |
|---|---|---|
| Environment to deploy | Target environment | staging-1 or production-1 |
| Frontend image tag | Version tag for the frontend image | v1.3.0 |
| Backend image tag | Version tag for the backend image | v1.3.0 |
- (Optional) Check “Only run plan, do not apply” to preview infrastructure changes without deploying
- Click Run workflow
- Frontend and backend tags are independent — you can deploy only a frontend change by using the new tag for frontend and keeping the current tag for backend (or vice versa).
- There is no required order between staging and production. You can deploy directly to production if needed.
- Use the
sha-<commit>tag format if you need to deploy a specific commit that is not a release.
Post-deploy Verification
Section titled “Post-deploy Verification”After the workflow completes, verify the deployment is healthy:
Health Endpoint
Section titled “Health Endpoint”# Replace with the actual environment URLcurl https://<environment-url>/healthA 200 response with all checks ok confirms the deployment is healthy. See Health Monitoring for details on available checks.
Monitoring Dashboards
Section titled “Monitoring Dashboards”- Pulse (
/pulse) — Check the Deployments card for the new entry and review real-time metrics - Telescope (
/telescope) — Look for new exceptions or errors after the deploy
See Deployment Tracking for how deployments are recorded in Pulse.
Rollback
Section titled “Rollback”To roll back a deployment, run the deploy workflow again with the previous version tag. The containers will be replaced with the earlier image.
Related Documentation
Section titled “Related Documentation”- Deployment Tracking — Recording deployments in Pulse
- Docker Health Monitoring — Container runtime and health checks
- Health Monitoring — Application health endpoints and dashboards