Configuration Reference

All environment variables for Docker Compose and Helm chart values for Kubernetes deployments.

Environment Variables

These variables are set in the .env file for Docker Compose deployments. In Kubernetes, they are mapped from the Helm values automatically.

AWS

VariableRequiredDescription
POWER_AWS_ACCESS_KEY_IDYesAccess key for the IAM user that calls sts:AssumeRole
POWER_AWS_SECRET_ACCESS_KEYYesSecret key for the IAM user
POWER_AWS_REGIONYesDefault AWS region (e.g., us-east-1)
BASE_ROLE_ARNYesARN of the IAM role the backend assumes via STS
COLLECTOR_REGIONSNoComma-separated region list to limit collection. Empty = all 30 regions

SMTP

VariableRequiredDescription
SMTP_HOSTYesSMTP server hostname
SMTP_PORTYesSMTP port (typically 587 for STARTTLS)
SMTP_USERYesSMTP authentication username
SMTP_PASSWORDYesSMTP authentication password
SMTP_FROMYesSender email address for OTP and notifications

Database (PostgreSQL)

VariableRequiredDefaultDescription
POSTGRES_HOSTYespostgresPostgreSQL hostname
POSTGRES_PORTNo5432PostgreSQL port
POSTGRES_DBNoawsdashboardDatabase name
POSTGRES_USERNoawsdashboardDatabase username
POSTGRES_PASSWORDYesDatabase password

Cache (Valkey)

VariableRequiredDescription
VALKEY_PASSWORDYesPassword for the Valkey instance
VALKEY_URLYesFull connection URL, e.g. redis://:pass@valkey:6379

Application

VariableRequiredDefaultDescription
ADMIN_EMAILYesEmail for the initial admin account
COOKIE_SECURENofalseSet to true for HTTPS deployments
CORS_ORIGINSNohttp://localhost:4000Allowed CORS origins (comma-separated)
OTP_EXPIRY_MINUTESNo10OTP code validity in minutes
OTP_MAX_ATTEMPTSNo5Max incorrect OTP attempts before lockout
ALLOWED_DOMAINSNoComma-separated email domains for auto-registration

Collector Scheduling

These control how frequently the Celery workers collect data from AWS.

VariableDefaultDescription
COLLECT_RESOURCE_ALL_SECS21600 (6h)Full resource scan interval
COLLECT_METRICS_EVERY_SECS300 (5m)CloudWatch metrics collection interval
METRICS_RETENTION_SECS3600 (1h)How often to purge old metric data
COLLECT_ALARMS_EVERY_SECS300 (5m)CloudWatch alarms collection interval
COLLECT_HEALTH_EVENTS_EVERY_SECS900 (15m)AWS Health events collection interval

Helm Chart Values

When deploying with Helm, configuration is set through values.yaml instead of environment variables. The chart maps these to the correct env vars automatically.

Core Settings

KeyDefaultDescription
aws.powerAccessKeyId""AWS access key ID
aws.powerSecretAccessKey""AWS secret access key
aws.regionus-east-1Default AWS region
aws.baseRoleArn""IAM role ARN for STS
aws.existingSecret""Use existing K8s secret for AWS creds
app.adminEmail""Admin account email
app.cookieSecuretrueSecure cookie flag
app.corsOrigins""Allowed CORS origins
app.otpExpiryMinutes10OTP validity
app.otpMaxAttempts5Max OTP attempts
app.allowedDomains""Auto-registration domains
app.collectorRegions""Limit collector regions

SMTP

KeyDefaultDescription
smtp.host""SMTP server
smtp.port587SMTP port
smtp.user""SMTP username
smtp.password""SMTP password
smtp.from""Sender address

PostgreSQL

KeyDefaultDescription
services.postgresql.enabledtrueDeploy in-cluster PostgreSQL
services.postgresql.image.tag16-alpinePostgreSQL image tag
services.postgresql.auth.databaseawsdashboardDatabase name
services.postgresql.auth.usernameawsdashboardUsername
services.postgresql.auth.password""Password (required)
services.postgresql.persistence.enabledtrueEnable persistent volume
services.postgresql.persistence.size5GiVolume size
externalServices.postgresql.host""External PG host (when services.postgresql.enabled=false)
externalServices.postgresql.port5432External PG port
externalServices.postgresql.password""External PG password

Valkey

KeyDefaultDescription
services.valkey.enabledtrueDeploy in-cluster Valkey
services.valkey.password""Valkey password (required)
services.valkey.persistence.enabledfalseEnable persistent volume
externalServices.valkey.url""External Redis URL (when services.valkey.enabled=false)

Workloads

KeyDefaultDescription
services.backend.replicas1Backend pod replicas
services.backend.image.repositorymguptahub/infrawatch-backendBackend image
services.backend.image.taglatestBackend image tag
services.frontend.replicas1Frontend pod replicas
services.frontend.image.repositorymguptahub/infrawatch-frontendFrontend image
services.frontend.image.taglatestFrontend image tag
services.celeryWorker.replicas1Celery worker replicas

Ingress & Service

KeyDefaultDescription
ingress.enabledfalseCreate Ingress resource
ingress.classNamenginxIngress class name
ingress.annotations{}Ingress annotations
ingress.hostsHost and path rules
ingress.tls[]TLS configuration
service.typeClusterIPService type
ingress.certManager.enabledfalseEnable cert-manager TLS automation
ingress.certManager.issuerTypeClusterIssuerClusterIssuer or Issuer
ingress.certManager.issuerNameletsencrypt-prodIssuer resource name