Skip to main content

Environment Variables Reference

Complete reference for all environment variables used by Pixell components.

Note: This documentation is generated by AI based on the source code, and therefore it may have some incorrect knowledge of the project. In that case, please contact engineering@pixell.global

Overview

Pixell uses environment variables for configuration, secrets management, and runtime behavior. Variables are organized by component and functionality.

Core Pixell Variables

General Configuration

VariableDescriptionDefaultRequired
PIXELL_ENVEnvironment name (development, staging, production)developmentNo
PIXELL_DEBUGEnable debug modefalseNo
PIXELL_LOG_LEVELLog level (debug, info, warn, error)infoNo
PIXELL_VERBOSEEnable verbose outputfalseNo
PIXELL_QUIETSuppress output (except errors)falseNo
PIXELL_CONFIGPath to configuration file./config.yamlNo
PIXELL_DATA_DIRData directory path./dataNo
PIXELL_TEMP_DIRTemporary directory path./tmpNo

Security Variables

VariableDescriptionDefaultRequired
PIXELL_SECRET_KEYMaster secret key-Yes
PIXELL_JWT_SECRETJWT signing secret-Yes
PIXELL_API_KEYAPI authentication key-No
PIXELL_CSRF_SECRETCSRF protection secret-No
PIXELL_ENCRYPTION_KEYData encryption key-No
PIXELL_SESSION_SECRETSession secret key-No

PAR (Pixell Agent Runtime) Variables

Runtime Configuration

VariableDescriptionDefaultRequired
PAR_HOSTRuntime bind host0.0.0.0No
PAR_PORTRuntime bind port8080No
PAR_WORKERSNumber of worker processes4No
PAR_NAMERuntime namePAR RuntimeNo
PAR_VERSIONRuntime version1.0.0No
PAR_DESCRIPTIONRuntime description-No

Agent Management

VariableDescriptionDefaultRequired
PAR_AGENT_STARTUP_TIMEOUTAgent startup timeout (seconds)30No
PAR_AGENT_SHUTDOWN_TIMEOUTAgent shutdown timeout (seconds)10No
PAR_AGENT_HEALTH_INTERVALHealth check interval (seconds)30No
PAR_AGENT_MAX_RESTARTSMaximum restart attempts3No
PAR_AGENT_RESTART_DELAYRestart delay (seconds)5No
PAR_AGENT_MAX_MEMORYMaximum memory per agent512MBNo
PAR_AGENT_MAX_CPUMaximum CPU per agent1.0No
PAR_AGENT_MAX_DISKMaximum disk per agent1GBNo
PAR_AGENT_MAX_NETWORKMaximum network per agent100MbpsNo

API Gateway

VariableDescriptionDefaultRequired
PAR_API_HOSTAPI gateway host0.0.0.0No
PAR_API_PORTAPI gateway port8080No
PAR_API_DEFAULT_AGENTDefault agent for requestsmainNo
PAR_API_FALLBACK_AGENTFallback agentfallbackNo
PAR_API_ROUTE_HEADERRoute by header nameX-Agent-IDNo
PAR_API_ROUTE_PATHEnable path-based routingtrueNo
PAR_API_LOAD_BALANCERLoad balancing algorithmround_robinNo
PAR_API_STICKY_SESSIONSEnable sticky sessionsfalseNo
PAR_API_RATE_LIMITRequests per minute1000No
PAR_API_BURST_SIZEBurst size100No
PAR_API_AGENT_LIMITPer-agent rate limit100No
PAR_API_CACHE_TTLCache TTL (seconds)300No
PAR_API_CACHE_SIZECache size100MBNo

Agent-to-Agent Communication

VariableDescriptionDefaultRequired
PAR_A2A_ENABLEDEnable A2A communicationtrueNo
PAR_A2A_PORTA2A port50051No
PAR_A2A_MAX_MESSAGE_SIZEMaximum message size4MBNo
PAR_A2A_KEEPALIVE_TIMEKeepalive time (seconds)30No
PAR_A2A_KEEPALIVE_TIMEOUTKeepalive timeout (seconds)5No
PAR_A2A_DISCOVERY_ENABLEDEnable service discoverytrueNo
PAR_A2A_DISCOVERY_REGISTRYRegistry typeconsulNo
PAR_A2A_DISCOVERY_URLRegistry URLhttp://localhost:8500No
PAR_A2A_DISCOVERY_TTLService TTL (seconds)30No
PAR_A2A_BROKER_ENABLEDEnable message brokertrueNo
PAR_A2A_BROKER_TYPEBroker typeredisNo
PAR_A2A_BROKER_URLBroker URLredis://localhost:6379No

Database Configuration

VariableDescriptionDefaultRequired
PAR_DATABASE_ENABLEDEnable databasetrueNo
PAR_DATABASE_TYPEDatabase typepostgresqlNo
PAR_DATABASE_URLDatabase URL-Yes
PAR_DATABASE_POOL_SIZEConnection pool size10No
PAR_DATABASE_MAX_OVERFLOWMax overflow connections20No
PAR_DATABASE_POOL_TIMEOUTPool timeout (seconds)30No
PAR_DATABASE_POOL_RECYCLEPool recycle time (seconds)3600No

Cache Configuration

VariableDescriptionDefaultRequired
PAR_CACHE_ENABLEDEnable cachingtrueNo
PAR_CACHE_TYPECache typeredisNo
PAR_CACHE_URLCache URLredis://localhost:6379No
PAR_CACHE_TTLDefault TTL (seconds)3600No
PAR_CACHE_MAX_SIZEMaximum cache size1GBNo

Monitoring and Observability

VariableDescriptionDefaultRequired
PAR_MONITORING_ENABLEDEnable monitoringtrueNo
PAR_PROMETHEUS_ENABLEDEnable Prometheus metricstrueNo
PAR_PROMETHEUS_PORTPrometheus port9090No
PAR_PROMETHEUS_PATHPrometheus path/metricsNo
PAR_PROMETHEUS_INTERVALCollection interval (seconds)60No
PAR_TRACING_ENABLEDEnable tracingtrueNo
PAR_TRACING_TYPETracing typejaegerNo
PAR_TRACING_ENDPOINTTracing endpointhttp://localhost:14268/api/tracesNo
PAR_TRACING_SAMPLE_RATESample rate0.1No
PAR_LOGGING_ENABLEDEnable loggingtrueNo
PAR_LOGGING_LEVELLog levelinfoNo
PAR_LOGGING_FORMATLog formatjsonNo
PAR_LOGGING_FILELog file path/var/log/par/runtime.logNo
PAR_LOGGING_MAX_SIZEMax log file size100MBNo
PAR_LOGGING_MAX_FILESMax log files5No
PAR_ALERTING_ENABLEDEnable alertingtrueNo
PAR_ALERTING_WEBHOOK_URLAlert webhook URL-No

Security Configuration

VariableDescriptionDefaultRequired
PAR_SECURITY_ENABLEDEnable securitytrueNo
PAR_AUTH_ENABLEDEnable authenticationtrueNo
PAR_AUTH_TYPEAuthentication typejwtNo
PAR_AUTH_JWT_SECRETJWT secret-Yes
PAR_AUTH_JWT_EXPIRYJWT expiry (seconds)3600No
PAR_AUTH_REFRESH_EXPIRYRefresh token expiry (seconds)86400No
PAR_AUTHORIZATION_ENABLEDEnable authorizationtrueNo
PAR_RBAC_ENABLEDEnable RBACtrueNo
PAR_API_SECURITY_ENABLEDEnable API securitytrueNo
PAR_RATE_LIMITING_ENABLEDEnable rate limitingtrueNo
PAR_RATE_LIMITING_RPMRequests per minute1000No
PAR_RATE_LIMITING_BURSTBurst size100No
PAR_CORS_ENABLEDEnable CORStrueNo
PAR_CORS_ORIGINSCORS origins*No
PAR_CORS_METHODSCORS methodsGET,POST,PUT,DELETENo
PAR_CORS_HEADERSCORS headers*No
PAR_CSRF_ENABLEDEnable CSRF protectiontrueNo
PAR_CSRF_SECRETCSRF secret-No
PAR_TLS_ENABLEDEnable TLSfalseNo
PAR_TLS_CERT_FILETLS certificate file/etc/par/tls/cert.pemNo
PAR_TLS_KEY_FILETLS key file/etc/par/tls/key.pemNo
PAR_FIREWALL_ENABLEDEnable firewalltrueNo

Storage Configuration

VariableDescriptionDefaultRequired
PAR_STORAGE_ENABLEDEnable storagetrueNo
PAR_STORAGE_LOCAL_ENABLEDEnable local storagetrueNo
PAR_STORAGE_LOCAL_PATHLocal storage path/var/lib/par/storageNo
PAR_STORAGE_LOCAL_MAX_SIZEMax storage size10GBNo
PAR_STORAGE_LOCAL_CLEANUP_INTERVALCleanup interval (seconds)3600No
PAR_STORAGE_OBJECT_ENABLEDEnable object storagefalseNo
PAR_STORAGE_OBJECT_TYPEObject storage types3No
PAR_STORAGE_OBJECT_ENDPOINTObject storage endpoint-No
PAR_STORAGE_OBJECT_BUCKETObject storage bucket-No
PAR_STORAGE_OBJECT_ACCESS_KEYObject storage access key-No
PAR_STORAGE_OBJECT_SECRET_KEYObject storage secret key-No
PAR_STORAGE_OBJECT_REGIONObject storage region-No

PAK (Pixell Agent Kit) Variables

General Configuration

VariableDescriptionDefaultRequired
PAK_CONFIGPath to config file./pixell.yamlNo
PAK_LOG_LEVELLog levelinfoNo
PAK_DEBUGDebug modefalseNo
PAK_VERBOSEVerbose outputfalseNo
PAK_QUIETQuiet modefalseNo
PAK_RUNTIMEDefault runtime URLhttp://localhost:8080No
PAK_TOKENDefault auth token-No

Build Configuration

VariableDescriptionDefaultRequired
PAK_BUILD_TARGETBuild targetproductionNo
PAK_BUILD_COMPRESSEnable compressionfalseNo
PAK_BUILD_OPTIMIZEEnable optimizationsfalseNo
PAK_BUILD_OUTPUTOutput directory./distNo
PAK_BUILD_CLEANClean build directoryfalseNo

Development Configuration

VariableDescriptionDefaultRequired
PAK_DEV_HOSTDevelopment hostlocalhostNo
PAK_DEV_PORTDevelopment port8080No
PAK_DEV_RELOADEnable hot reloadingtrueNo
PAK_DEV_DEBUGEnable debug modefalseNo
PAK_DEV_ENV_FILEEnvironment file.envNo

Testing Configuration

VariableDescriptionDefaultRequired
PAK_TEST_COVERAGEGenerate coverage reportfalseNo
PAK_TEST_WATCHWatch modefalseNo
PAK_TEST_VERBOSEVerbose outputfalseNo
PAK_TEST_PARALLELRun tests in paralleltrueNo
PAK_TEST_TIMEOUTTest timeout (ms)5000No

Deployment Configuration

VariableDescriptionDefaultRequired
PAK_DEPLOY_RUNTIMEDeployment runtime URLhttp://localhost:8080No
PAK_DEPLOY_TOKENDeployment token-No
PAK_DEPLOY_WAITWait for deploymenttrueNo
PAK_DEPLOY_ROLLBACKRollback on failurefalseNo
PAK_DEPLOY_PACKAGEPackage file path./dist/*.apkgNo

Agent Variables

General Agent Configuration

VariableDescriptionDefaultRequired
AGENT_IDAgent identifier-Yes
AGENT_NAMEAgent name-Yes
AGENT_VERSIONAgent version1.0.0No
AGENT_DESCRIPTIONAgent description-No
AGENT_AUTHORAgent author-No
AGENT_EMAILAgent author email-No

Agent API Configuration

VariableDescriptionDefaultRequired
AGENT_API_HOSTAPI host0.0.0.0No
AGENT_API_PORTAPI port8080No
AGENT_API_CORS_ORIGINSCORS origins*No
AGENT_API_CORS_METHODSCORS methodsGET,POST,PUT,DELETENo
AGENT_API_CORS_HEADERSCORS headers*No
AGENT_API_RATE_LIMITRate limit (requests/minute)1000No
AGENT_API_BURST_SIZEBurst size100No

Agent A2A Configuration

VariableDescriptionDefaultRequired
AGENT_A2A_ENABLEDEnable A2A communicationtrueNo
AGENT_A2A_PORTA2A port50051No
AGENT_A2A_MAX_MESSAGE_SIZEMax message size4MBNo
AGENT_A2A_KEEPALIVE_TIMEKeepalive time (seconds)30No
AGENT_A2A_KEEPALIVE_TIMEOUTKeepalive timeout (seconds)5No

Agent UI Configuration

VariableDescriptionDefaultRequired
AGENT_UI_ENABLEDEnable UItrueNo
AGENT_UI_PATHUI path/uiNo
AGENT_UI_STATIC_DIRStatic directorystaticNo
AGENT_UI_TITLEUI titleAgent NameNo
AGENT_UI_DESCRIPTIONUI descriptionAgent DescriptionNo

Agent Logging Configuration

VariableDescriptionDefaultRequired
AGENT_LOG_LEVELLog levelinfoNo
AGENT_LOG_FORMATLog formatjsonNo
AGENT_LOG_FILELog file path-No
AGENT_LOG_MAX_SIZEMax log file size100MBNo
AGENT_LOG_MAX_FILESMax log files5No

Agent Security Configuration

VariableDescriptionDefaultRequired
AGENT_SECURITY_ENABLEDEnable securitytrueNo
AGENT_AUTH_ENABLEDEnable authenticationtrueNo
AGENT_AUTH_TYPEAuthentication typejwtNo
AGENT_AUTH_JWT_SECRETJWT secret-Yes
AGENT_AUTH_JWT_EXPIRYJWT expiry (seconds)3600No
AGENT_AUTH_REFRESH_EXPIRYRefresh token expiry (seconds)86400No
AGENT_API_KEYAPI key-No
AGENT_CSRF_SECRETCSRF secret-No

External Service Variables

Database Services

VariableDescriptionDefaultRequired
DATABASE_URLDatabase connection URL-Yes
POSTGRES_URLPostgreSQL URL-No
MYSQL_URLMySQL URL-No
SQLITE_URLSQLite URL-No
DATABASE_POOL_SIZEConnection pool size10No
DATABASE_MAX_OVERFLOWMax overflow connections20No
DATABASE_POOL_TIMEOUTPool timeout (seconds)30No
DATABASE_POOL_RECYCLEPool recycle time (seconds)3600No

Cache Services

VariableDescriptionDefaultRequired
REDIS_URLRedis connection URLredis://localhost:6379No
REDIS_HOSTRedis hostlocalhostNo
REDIS_PORTRedis port6379No
REDIS_PASSWORDRedis password-No
REDIS_DBRedis database0No
REDIS_TTLDefault TTL (seconds)3600No
REDIS_MAX_SIZEMax cache size1GBNo

Message Broker Services

VariableDescriptionDefaultRequired
BROKER_URLMessage broker URL-No
RABBITMQ_URLRabbitMQ URL-No
KAFKA_URLKafka URL-No
NATS_URLNATS URL-No
BROKER_TYPEBroker typeredisNo
BROKER_CHANNELSMessage channelsagent.events,agent.requests,agent.responsesNo

Service Discovery Services

VariableDescriptionDefaultRequired
DISCOVERY_URLService discovery URL-No
CONSUL_URLConsul URLhttp://localhost:8500No
ETCD_URLetcd URL-No
DISCOVERY_TYPEDiscovery typeconsulNo
DISCOVERY_TTLService TTL (seconds)30No
DISCOVERY_HEALTH_INTERVALHealth check interval (seconds)10No

Monitoring Services

VariableDescriptionDefaultRequired
PROMETHEUS_URLPrometheus URLhttp://localhost:9090No
GRAFANA_URLGrafana URLhttp://localhost:3000No
JAEGER_URLJaeger URLhttp://localhost:14268No
ZIPKIN_URLZipkin URLhttp://localhost:9411No
ELASTICSEARCH_URLElasticsearch URLhttp://localhost:9200No
KIBANA_URLKibana URLhttp://localhost:5601No

Cloud Services

VariableDescriptionDefaultRequired
AWS_ACCESS_KEY_IDAWS access key-No
AWS_SECRET_ACCESS_KEYAWS secret key-No
AWS_REGIONAWS regionus-east-1No
AWS_S3_BUCKETS3 bucket-No
AWS_S3_ENDPOINTS3 endpoint-No
GCP_PROJECT_IDGCP project ID-No
GCP_CREDENTIALSGCP credentials-No
AZURE_ACCOUNT_NAMEAzure account name-No
AZURE_ACCOUNT_KEYAzure account key-No

Environment-Specific Variables

Development Environment

# Development environment variables
PIXELL_ENV=development
PIXELL_DEBUG=true
PIXELL_LOG_LEVEL=debug
PIXELL_VERBOSE=true

PAR_HOST=localhost
PAR_PORT=8080
PAR_WORKERS=1

PAK_DEV_RELOAD=true
PAK_DEV_DEBUG=true

AGENT_LOG_LEVEL=debug
AGENT_LOG_FORMAT=text

Staging Environment

# Staging environment variables
PIXELL_ENV=staging
PIXELL_DEBUG=false
PIXELL_LOG_LEVEL=info
PIXELL_VERBOSE=false

PAR_HOST=0.0.0.0
PAR_PORT=8080
PAR_WORKERS=2

PAK_BUILD_TARGET=staging
PAK_BUILD_COMPRESS=true

AGENT_LOG_LEVEL=info
AGENT_LOG_FORMAT=json

Production Environment

# Production environment variables
PIXELL_ENV=production
PIXELL_DEBUG=false
PIXELL_LOG_LEVEL=warn
PIXELL_VERBOSE=false

PAR_HOST=0.0.0.0
PAR_PORT=8080
PAR_WORKERS=4

PAK_BUILD_TARGET=production
PAK_BUILD_COMPRESS=true
PAK_BUILD_OPTIMIZE=true

AGENT_LOG_LEVEL=warn
AGENT_LOG_FORMAT=json
AGENT_SECURITY_ENABLED=true
AGENT_AUTH_ENABLED=true

Variable Substitution

Pixell supports variable substitution in configuration files:

# config.yaml
runtime:
host: "${PAR_HOST}"
port: "${PAR_PORT}"
workers: "${PAR_WORKERS}"

database:
url: "${DATABASE_URL}"
pool_size: "${DATABASE_POOL_SIZE}"

cache:
url: "${REDIS_URL}"
ttl: "${REDIS_TTL}"

Environment File Examples

.env.development

# Development environment
PIXELL_ENV=development
PIXELL_DEBUG=true
PIXELL_LOG_LEVEL=debug

PAR_HOST=localhost
PAR_PORT=8080
PAR_WORKERS=1

DATABASE_URL=postgresql://user:pass@localhost:5432/pixell_dev
REDIS_URL=redis://localhost:6379

AGENT_ID=my-agent
AGENT_NAME=My Agent
AGENT_VERSION=1.0.0

.env.production

# Production environment
PIXELL_ENV=production
PIXELL_DEBUG=false
PIXELL_LOG_LEVEL=warn

PAR_HOST=0.0.0.0
PAR_PORT=8080
PAR_WORKERS=4

DATABASE_URL=postgresql://user:pass@db.example.com:5432/pixell_prod
REDIS_URL=redis://redis.example.com:6379

AGENT_ID=my-agent
AGENT_NAME=My Agent
AGENT_VERSION=1.0.0
AGENT_SECURITY_ENABLED=true
AGENT_AUTH_ENABLED=true

Variable Validation

Pixell validates environment variables on startup:

# Validate environment variables
pixell validate-env

# Validate with specific environment
pixell validate-env --env production

# Show missing variables
pixell validate-env --show-missing

Security Best Practices

1. Secret Management

# Use environment variables for secrets
export PIXELL_SECRET_KEY="$(openssl rand -base64 32)"
export PIXELL_JWT_SECRET="$(openssl rand -base64 32)"
export PIXELL_API_KEY="$(openssl rand -base64 32)"

2. Environment Isolation

# Use different values for different environments
# Development
export PIXELL_ENV=development
export DATABASE_URL="postgresql://localhost:5432/pixell_dev"

# Production
export PIXELL_ENV=production
export DATABASE_URL="postgresql://prod-db:5432/pixell_prod"

3. Variable Encryption

# Encrypt sensitive variables
export PIXELL_SECRET_KEY="$(echo 'my-secret' | base64)"
export PIXELL_JWT_SECRET="$(echo 'jwt-secret' | base64)"

Troubleshooting

Common Issues

1. Missing Required Variables

Problem: Required environment variables are not set Solutions:

  • Check variable names and values
  • Use pixell validate-env to identify missing variables
  • Set default values in configuration
  • Use environment files

2. Invalid Variable Values

Problem: Environment variables have invalid values Solutions:

  • Check variable types (string, number, boolean)
  • Verify numeric ranges
  • Check URL formats
  • Validate enum values

3. Variable Substitution Issues

Problem: Variable substitution not working Solutions:

  • Check variable syntax: ${VARIABLE_NAME}
  • Verify variables are exported
  • Check for typos in variable names
  • Use quotes around values with spaces

Debugging Environment Variables

# Show all environment variables
pixell env show

# Show variables for specific component
pixell env show --component par

# Show variables with values
pixell env show --values

# Show missing variables
pixell env show --missing

Next Steps

After setting up environment variables:

  1. PAR Configuration Reference - Configure PAR runtime
  2. APKG Schema Reference - Understand agent package format
  3. PAK CLI Reference - Use PAK to build and deploy agents
  4. Full Deployment Guide - Complete deployment

Ready to configure your environment? Check out PAR Configuration Reference to configure your runtime!