Deploying to Production ¶
This guide explains how to deploy the dashboards to production.
Automated Deployment (Tag Push) ¶
Production deployments are triggered automatically by pushing a release tag to the repository. The tag pattern 2024.11.08 (date format) triggers a prod deployment.
Workflow ¶
- A release tag is pushed (e.g.,
git push origin 2024.11.08). - GitHub Actions runs
deploy.yml:- Builds the custom Metabase Docker image from
./metabase/Dockerfileand pushes it to GHCR (ghcr.io/compilerla/dashboards/metabase:<sha>). - Terraform applies infrastructure changes, injecting the new image tag via
TF_VAR_metabase_image_tagin GitHub Actions. - Cloud Run rolls out the new Metabase container, which uses
socatto bridge Cloud Run’s Cloud SQL Unix socket to TCP 5432 for standard PostgreSQL JDBC.
- Builds the custom Metabase Docker image from
- If it’s a final release tag (no
-rcsuffix), a GitHub release is created with generated release notes.
Required Inputs (workflow_dispatch) ¶
When triggering manually via workflow_dispatch, you must provide:
metabase_image_tag: The Docker image tag to deploy (e.g.v0.65.2or a Git SHA). The registry path (ghcr.io/compilerla/dashboards/metabase) is hardcoded in Terraform.
Manual Steps (Dev/Test) ¶
For non-production environments, the same workflow runs via workflow_dispatch with the metabase_image_tag input, or automatically via -rc release candidate tags.
Cost Estimates ¶
For a detailed breakdown of the initial monthly production costs, see the Cost Estimates page.