Configuration File Selection
TEMPORAL_SERVER_CONFIG_FILE_PATH
Specifies the path to the server configuration file.- Type: String (file path)
- Default: Not set (uses config directory or embedded config)
- Example:
/etc/temporal/config.yaml
TEMPORAL_ROOT
Root directory for Temporal Server execution (deprecated).- Type: String (directory path)
- Default:
.(current directory) - Deprecated: Use
--config-fileinstead
TEMPORAL_CONFIG_DIR
Directory containing configuration files (deprecated).- Type: String (directory path)
- Default:
config - Deprecated: Use
--config-fileinstead
TEMPORAL_ENVIRONMENT
Environment name for configuration selection (deprecated).- Type: String
- Default:
development - Values:
development,production, etc. - Deprecated: Use
--config-fileinstead
TEMPORAL_AVAILABILITY_ZONE
Availability zone for the server instance (deprecated).- Type: String
- Default: Not set
- Deprecated: Use
--config-fileinstead
TEMPORAL_AVAILABILTY_ZONE
Legacy typo version of availability zone variable (deprecated).- Type: String
- Default: Not set
- Deprecated: Use
TEMPORAL_AVAILABILITY_ZONEor--config-file
Authorization
TEMPORAL_ALLOW_NO_AUTH
Allows server to start without an authorizer configured.- Type: Boolean
- Default:
false - Values:
true,false,1,0
Service Selection
TEMPORAL_SERVICES
Comma-separated list of services to start.- Type: String (comma-separated)
- Default:
frontend,history,matching,worker - Values: Any combination of
frontend,history,matching,worker,internal-frontend
Database Configuration
While database configuration is typically in config files, some connection strings can use environment variables.Connection String Variables
You can use environment variable substitution in config files:DB_HOST: Database hostDB_PORT: Database portDB_NAME: Database nameDB_USER: Database usernameDB_PASSWORD: Database password
TLS Configuration
TLS certificates can reference environment variables:TLS_CERT_FILE: Path to TLS certificateTLS_KEY_FILE: Path to TLS private keyTLS_CA_FILE: Path to CA certificate
Logging
LOG_LEVEL
Sets the logging level.- Type: String
- Default:
info - Values:
debug,info,warn,error,fatal
LOG_FORMAT
Sets the log output format.- Type: String
- Default:
json - Values:
json,console
Metrics
PROMETHEUS_ENDPOINT
Prometheus metrics endpoint address.- Type: String (host:port)
- Default: Not set
STATSD_ENDPOINT
StatsD metrics endpoint.- Type: String (host:port)
- Default: Not set
OpenTelemetry
OTEL_EXPORTER_OTLP_ENDPOINT
OTLP exporter endpoint for traces and metrics.- Type: String (URL)
- Default: Not set
- Example:
http://localhost:4318
OTEL_RESOURCE_ATTRIBUTES
Resource attributes for OTEL spans.- Type: String (key=value pairs)
- Default: Not set
- Example:
service.name=temporal-server,environment=production
Dynamic Configuration
DYNAMIC_CONFIG_FILE_PATH
Path to dynamic configuration file.- Type: String (file path)
- Default: Not set
Advanced Configuration
NUM_HISTORY_SHARDS
Number of history shards (must be power of 2).- Type: Integer
- Default:
4 - Values: Powers of 2 (4, 8, 16, 32, etc.)
BIND_ON_IP
IP address to bind all services.- Type: String (IP address)
- Default: Not set (binds to localhost)
- Values: Valid IP addresses or
0.0.0.0for all interfaces
FRONTEND_GRPC_PORT
Frontend gRPC port.- Type: Integer
- Default:
7233
FRONTEND_HTTP_PORT
Frontend HTTP port.- Type: Integer
- Default:
7243
HISTORY_GRPC_PORT
History service gRPC port.- Type: Integer
- Default:
7234
MATCHING_GRPC_PORT
Matching service gRPC port.- Type: Integer
- Default:
7235
WORKER_GRPC_PORT
Worker service gRPC port.- Type: Integer
- Default:
7239
Kubernetes/Docker Examples
Docker Compose
Kubernetes ConfigMap
Environment Variable Precedence
Configuration is resolved in this order (highest to lowest priority):- Command-line flags
- Environment variables
- Configuration file values
- Default values
Security Best Practices
- Never commit secrets: Don’t put passwords or keys in version control
- Use secret management: Use Kubernetes Secrets, AWS Secrets Manager, or HashiCorp Vault
- Least privilege: Grant minimal permissions to database users
- Rotate credentials: Regularly rotate passwords and certificates
- Audit logging: Enable audit logs for security-sensitive operations
Troubleshooting
Variable Not Taking Effect
- Check variable name spelling (case-sensitive)
- Verify environment is set before starting server
- Check for command-line flag overrides
- Review server logs for configuration errors
Connection Issues
- Verify database environment variables are set correctly
- Test database connectivity manually
- Check network policies and firewall rules
- Verify credentials are valid
TLS Errors
- Verify certificate paths are correct
- Check certificate validity (not expired)
- Ensure CA certificates are available
- Verify hostname matches certificate CN/SAN