Install & deploy¶
How to run Deployment Dashboard for a real team. For a zero-config local trial, see the Quickstart.
Contents¶
docker-compose.md¶
kubernetes.md¶
- Topology
- Prerequisites
- Install
- Values reference
- Routing options
- Demo mode
- Upgrade / uninstall
- Networking & security
azure-terraform.md¶
Concepts in one minute¶
-
Push-first ingestion
Your CI/CD pipeline
POSTs a deployment event toPOST /api/deploymentsโ one extra step. Integrate your CI/CD. -
Pull mode is optional
The Fetcher can poll a CI/CD API (GitHub Actions today) and post through the same endpoint โ see the
-pullprofiles. -
One published port
The gateway (
:8080) is the only exposed surface. API, frontend, and PostgreSQL stay internal. -
Stateless backend
Scale API instances behind the gateway; SSE fan-out works across them via PostgreSQL
LISTEN/NOTIFY.
Deployment shapes¶
Two independent axes pick your profile:
-
Database
fullbundles PostgreSQL in a Docker volume;standaloneconnects to an external managed PostgreSQL (e.g. Azure Database for PostgreSQL) and scales the app tier behind the gateway. -
Ingestion
The base profile is push-only; the
-pullvariant adds the Fetcher for pull-mode ingestion.
Choose a deployment method¶
| Method | When to use |
|---|---|
| Docker Compose | Self-hosted โ any Linux/Windows host with Docker installed. Full control of infra. |
| Kubernetes (Helm) | Existing cluster you own โ versioned Helm chart, published to GHCR; Artifact Hub listing pending registration. |
| Azure (Terraform) | Managed cloud โ zero-ops Azure Container Apps stack, provisioned end-to-end by Terraform. |
Shared prerequisites¶
All methods pull images (and, for Kubernetes, the Helm chart) from GHCR. No registry credentials are needed for public images.
Production checklist¶
- Set a strong
API_KEY. Writes are rejected401without it. - Set
CONTROL_API_KEY(distinct fromAPI_KEY) only if you need the reset surface; leave it unset to hidePOST /api/control/reset. - Front the stack with TLS and keep it on your internal network โ reads are unauthenticated by design (Architecture).
- Set
HISTORY_RETENTION_DAYS(minimum 90; 365 recommended). - Scale the API horizontally behind the gateway as needed โ it's stateless.
See Configuration for every environment variable.
Pinning a release version¶
By default the stack pulls latest (tracks main). For a reproducible deploy, pin to a release tag โ see the method-specific guides for how:
- Docker Compose: set
DASHBOARD_VERSIONin.envโ see Pinning a release version. - Kubernetes (Helm): pass
--version <ver>tohelm install/helm upgradeโ see Install. - Azure Terraform: set
dashboard_versioninterraform.tfvarsโ see Deploy.
Hosting notes¶
Azure Container Apps
The gateway deploys to ACA unchanged โ the same image used in Docker Compose. Each proxy location sets the Host header to the upstream FQDN so ACA's internal Envoy routes correctly; no ACA-specific config is needed.
Demo gateway image
The production profiles above use deployment-dashboard-gateway. The demo profile uses a separate deployment-dashboard-gateway-demo image that layers /demo/* routing on top of the production image. Production deployments carry no demo routes or demo-driver configuration.