Skip to content

Server Configuration

Environment Variables

Application

VariableTypeDefaultDescription
APP_ENVstringApplication environment (e.g. production)
PORTnumber3000HTTP server port
DATA_DIRstring/tmp/dagDirectory for staged charts and cloned IAC repos (rarely needs changing)
DEPLOY_MONITOR_TIMEOUT_SECSnumber300Timeout (seconds) for monitoring Kubernetes deployments

PostgreSQL

VariableTypeDefaultDescription
PG_HOSTstringDatabase host
PG_PORTnumber5432Database port
PG_USERstringDatabase user
PG_PASSWORD_SECRETstringDatabase password
PG_DATABASEstringDatabase name
PG_SCHEMAstringpublicDatabase schema
PG_SSLbooleanfalseEnable SSL
PG_SSL_REJECT_UNAUTHORIZEDbooleantrueReject unauthorized certificates

Observability

VariableTypeDefaultDescription
SENTRY_DSNstringSentry error tracking DSN
OTEL_EXPORTER_OTLP_ENDPOINTstringOpenTelemetry collector endpoint

Database Entities

DAG uses four main entities to configure the deployment pipeline:

Apps

Register each application repository that will deploy through DAG.

FieldTypeDescription
gitProvider'gitlab' | 'github'Git hosting provider
repoUrlstringRepository URL (e.g. https://gitlab.com/org/app)

IAC Repositories

Configure the Infrastructure-as-Code repositories where charts will be pushed.

FieldTypeDescription
namestringHuman-readable name
repoUrlstringGit repository URL
accessTokenstringGit access token (used for HTTP Basic push authentication)

Clusters

Register Kubernetes clusters that DAG will monitor for deployment status.

FieldTypeDescription
namestringCluster name
apiUrlstringKubernetes API server URL
serviceAccountTokenstringService account bearer token
caCertstring | nullCA certificate for TLS verification

App Environments

Map an app's branch to a specific IAC repo path, cluster, and Helm configuration.

FieldTypeDescription
appIdnumberForeign key to App
branchstringGit branch name (e.g. main)
iacIdnumberForeign key to IAC Repository
iacPathstringPath within IAC repo to place the chart
clusterIdnumberForeign key to Cluster
helmType'flux' | 'plain'Helm deployment type
helmNamespacestring | nullKubernetes namespace
helmNamestring | nullHelm release name
iacBranchstring | nullIAC repo branch (null = default branch)