Skip to content

Environment Variables

Every config key supported by Lakta can be set via an environment variable. This is useful for secrets, deployment-time overrides, and container environments.

Transform the dot-notation config key:

  1. Prefix with LAKTA_
  2. Convert to uppercase
  3. Replace each path-separating . with a double underscore (__)
  4. Leave underscores inside a key (e.g. max_open_conns) as single underscores

The double-underscore separator is what lets a snake_case key survive: a single underscore everywhere would be ambiguous between a path boundary and the underscore inside the key.

Examples:

| Config key | Environment variable | |------------|---------------------| | modules.grpc.server.default.port | LAKTA_MODULES__GRPC__SERVER__DEFAULT__PORT | | modules.db.pgx.primary.dsn | LAKTA_MODULES__DB__PGX__PRIMARY__DSN | | modules.db.pgx.default.max_open_conns | LAKTA_MODULES__DB__PGX__DEFAULT__MAX_OPEN_CONNS | | modules.http.fiber.default.health_path | LAKTA_MODULES__HTTP__FIBER__DEFAULT__HEALTH_PATH |

Environment variables override config file values but are overridden by CLI flags:

config file < environment variable < CLI flag
# kubernetes deployment
env:
- name: LAKTA_MODULES__DB__PGX__DEFAULT__DSN
valueFrom:
secretKeyRef:
name: db-secret
key: dsn
- name: LAKTA_MODULES__OTEL__OTEL__DEFAULT__ENDPOINT
value: "http://otel-collector:4317"

Generated from the module config structs (showing the default instance). Swap DEFAULT for any instance name.

modules.db.pgx

Config keyEnvironment variable
modules.db.pgx.default.dsnLAKTA_MODULES__DB__PGX__DEFAULT__DSN
modules.db.pgx.default.max_open_connsLAKTA_MODULES__DB__PGX__DEFAULT__MAX_OPEN_CONNS
modules.db.pgx.default.log_levelLAKTA_MODULES__DB__PGX__DEFAULT__LOG_LEVEL
modules.db.pgx.default.health_checkLAKTA_MODULES__DB__PGX__DEFAULT__HEALTH_CHECK
modules.db.pgx.default.min_connsLAKTA_MODULES__DB__PGX__DEFAULT__MIN_CONNS
modules.db.pgx.default.max_conn_lifetimeLAKTA_MODULES__DB__PGX__DEFAULT__MAX_CONN_LIFETIME
modules.db.pgx.default.max_conn_idle_timeLAKTA_MODULES__DB__PGX__DEFAULT__MAX_CONN_IDLE_TIME
modules.db.pgx.default.health_check_periodLAKTA_MODULES__DB__PGX__DEFAULT__HEALTH_CHECK_PERIOD
modules.db.pgx.default.statement_timeoutLAKTA_MODULES__DB__PGX__DEFAULT__STATEMENT_TIMEOUT

modules.grpc.client

Config keyEnvironment variable
modules.grpc.client.default.targetLAKTA_MODULES__GRPC__CLIENT__DEFAULT__TARGET
modules.grpc.client.default.insecureLAKTA_MODULES__GRPC__CLIENT__DEFAULT__INSECURE
modules.grpc.client.default.tlsLAKTA_MODULES__GRPC__CLIENT__DEFAULT__TLS

modules.grpc.server

Config keyEnvironment variable
modules.grpc.server.default.hostLAKTA_MODULES__GRPC__SERVER__DEFAULT__HOST
modules.grpc.server.default.portLAKTA_MODULES__GRPC__SERVER__DEFAULT__PORT
modules.grpc.server.default.health_checkLAKTA_MODULES__GRPC__SERVER__DEFAULT__HEALTH_CHECK
modules.grpc.server.default.tlsLAKTA_MODULES__GRPC__SERVER__DEFAULT__TLS

modules.health.health

Config keyEnvironment variable
modules.health.health.default.component_nameLAKTA_MODULES__HEALTH__HEALTH__DEFAULT__COMPONENT_NAME
modules.health.health.default.component_versionLAKTA_MODULES__HEALTH__HEALTH__DEFAULT__COMPONENT_VERSION

modules.http.fiber

Config keyEnvironment variable
modules.http.fiber.default.hostLAKTA_MODULES__HTTP__FIBER__DEFAULT__HOST
modules.http.fiber.default.portLAKTA_MODULES__HTTP__FIBER__DEFAULT__PORT
modules.http.fiber.default.health_pathLAKTA_MODULES__HTTP__FIBER__DEFAULT__HEALTH_PATH
modules.http.fiber.default.tlsLAKTA_MODULES__HTTP__FIBER__DEFAULT__TLS

modules.logging.slog

Config keyEnvironment variable
modules.logging.slog.default.levelLAKTA_MODULES__LOGGING__SLOG__DEFAULT__LEVEL
modules.logging.slog.default.levelsLAKTA_MODULES__LOGGING__SLOG__DEFAULT__LEVELS
modules.logging.slog.default.global_defaultLAKTA_MODULES__LOGGING__SLOG__DEFAULT__GLOBAL_DEFAULT

modules.logging.tint

Config keyEnvironment variable
modules.logging.tint.default.time_formatLAKTA_MODULES__LOGGING__TINT__DEFAULT__TIME_FORMAT

modules.otel.otel

Config keyEnvironment variable
modules.otel.otel.default.service_nameLAKTA_MODULES__OTEL__OTEL__DEFAULT__SERVICE_NAME
modules.otel.otel.default.service_versionLAKTA_MODULES__OTEL__OTEL__DEFAULT__SERVICE_VERSION
modules.otel.otel.default.service_namespaceLAKTA_MODULES__OTEL__OTEL__DEFAULT__SERVICE_NAMESPACE
modules.otel.otel.default.environmentLAKTA_MODULES__OTEL__OTEL__DEFAULT__ENVIRONMENT
modules.otel.otel.default.endpointLAKTA_MODULES__OTEL__OTEL__DEFAULT__ENDPOINT
modules.otel.otel.default.protocolLAKTA_MODULES__OTEL__OTEL__DEFAULT__PROTOCOL
modules.otel.otel.default.insecureLAKTA_MODULES__OTEL__OTEL__DEFAULT__INSECURE
modules.otel.otel.default.headersLAKTA_MODULES__OTEL__OTEL__DEFAULT__HEADERS
modules.otel.otel.default.sample_rateLAKTA_MODULES__OTEL__OTEL__DEFAULT__SAMPLE_RATE
modules.otel.otel.default.metric_intervalLAKTA_MODULES__OTEL__OTEL__DEFAULT__METRIC_INTERVAL
modules.otel.otel.default.runtime_intervalLAKTA_MODULES__OTEL__OTEL__DEFAULT__RUNTIME_INTERVAL
modules.otel.otel.default.enabledLAKTA_MODULES__OTEL__OTEL__DEFAULT__ENABLED
modules.otel.otel.default.requiredLAKTA_MODULES__OTEL__OTEL__DEFAULT__REQUIRED
modules.otel.otel.default.signalsLAKTA_MODULES__OTEL__OTEL__DEFAULT__SIGNALS

modules.workflows.temporal

Config keyEnvironment variable
modules.workflows.temporal.default.targetLAKTA_MODULES__WORKFLOWS__TEMPORAL__DEFAULT__TARGET
modules.workflows.temporal.default.task_queueLAKTA_MODULES__WORKFLOWS__TEMPORAL__DEFAULT__TASK_QUEUE
modules.workflows.temporal.default.namespaceLAKTA_MODULES__WORKFLOWS__TEMPORAL__DEFAULT__NAMESPACE
modules.workflows.temporal.default.insecureLAKTA_MODULES__WORKFLOWS__TEMPORAL__DEFAULT__INSECURE