This document provides a comprehensive reference for all environment variables used by the Docker entrypoint script to generate the YAML configuration file for probod.
When running Probo in Docker:
With existing config file : If you mount a configuration file to /etc/probod/config.yml, it will be used as-is
With environment variables : If no config file exists, the entrypoint script generates one from these environment variables
Direct probod usage : The probod binary only accepts YAML configuration files via the -cfg-file flag
Variable Description Default Value Required CONFIG_FILEPath to the configuration file /etc/probod/config.ymlNo
Variable Description Default Value Required METRICS_ADDRAddress for Prometheus metrics endpoint localhost:8081No
Variable Description Default Value Required TRACING_ADDROpenTelemetry collector address for distributed tracing localhost:4317No TRACING_MAX_BATCH_SIZEMaximum number of spans to batch before export 512No TRACING_BATCH_TIMEOUTTimeout in seconds for batching spans 5No TRACING_EXPORT_TIMEOUTTimeout in seconds for exporting traces 30No TRACING_MAX_QUEUE_SIZEMaximum queue size for spans waiting to be exported 2048No
Variable Description Default Value Required PROBOD_BASE_URLPublic hostname for the Probo instance (used for URL generation) http://localhost:8080No PROBOD_ENCRYPTION_KEYBase64-encoded encryption key for sensitive data (32+ bytes) - Yes CHROME_DP_ADDRChrome DevTools Protocol address for PDF generation localhost:9222No
Variable Description Default Value Required API_ADDRAddress and port for the API server to bind to :8080No API_CORS_ALLOWED_ORIGINSComma-separated list of allowed CORS origins http://localhost:8080No
Variable Description Default Value Required PG_ADDRPostgreSQL server address and port localhost:5432No PG_USERNAMEPostgreSQL username postgresNo PG_PASSWORDPostgreSQL password postgresNo PG_DATABASEPostgreSQL database name probodNo PG_POOL_SIZEMaximum number of connections in the database pool 100No
Variable Description Default Value Required AUTH_DISABLE_SIGNUPDisable user self-registration falseNo AUTH_INVITATION_TOKEN_VALIDITYInvitation token validity duration in seconds 3600 (1 hour)No
Variable Description Default Value Required AUTH_COOKIE_NAMEName of the session cookie SSIDNo AUTH_COOKIE_DOMAINDomain for the session cookie localhostNo AUTH_COOKIE_SECRETSecret key for signing session cookies (32+ bytes) - Yes AUTH_COOKIE_DURATIONSession cookie validity duration in hours 24No AUTH_COOKIE_SECURESet Secure flag on cookies (use false for HTTP) trueNo
Variable Description Default Value Required AUTH_PASSWORD_PEPPERSecret pepper value for password hashing (32+ bytes) - Yes AUTH_PASSWORD_ITERATIONSNumber of PBKDF2 iterations for password hashing 1000000No
Variable Description Default Value Required TRUST_AUTH_COOKIE_NAMEName of the trust center token cookie TCTNo TRUST_AUTH_COOKIE_DOMAINDomain for the trust center cookie localhostNo TRUST_AUTH_COOKIE_DURATIONTrust center cookie validity duration in hours 24No TRUST_AUTH_TOKEN_DURATIONTrust center access token validity duration in hours 168 (7 days)No TRUST_AUTH_REPORT_URL_DURATIONValidity duration for report URLs in minutes 15No TRUST_AUTH_TOKEN_SECRETSecret key for signing trust center tokens (32+ bytes) - Yes TRUST_AUTH_SCOPEOAuth2 scope for trust center access trust_center_readonlyNo TRUST_AUTH_TOKEN_TYPEToken type identifier for trust center tokens trust_center_accessNo
Variable Description Default Value Required AWS_REGIONAWS region for S3 storage us-east-1No AWS_BUCKETS3 bucket name for file storage probodNo AWS_ACCESS_KEY_IDAWS access key ID (leave empty for IAM role) - No AWS_SECRET_ACCESS_KEYAWS secret access key (leave empty for IAM role) - No AWS_ENDPOINTCustom S3 endpoint (for MinIO or S3-compatible services) - No
Variable Description Default Value Required MAILER_SENDER_NAMEDisplay name for outgoing emails ProboNo MAILER_SENDER_EMAILEmail address for outgoing emails [email protected] No SMTP_ADDRSMTP server address and port localhost:1025No SMTP_TLS_REQUIREDRequire TLS for SMTP connections falseNo MAILER_INTERVALInterval in seconds for processing email queue 60No
Variable Description Default Value Required SLACK_SENDER_INTERVALInterval in seconds for processing Slack notification queue 60No
Variable Description Default Value Required OPENAI_API_KEYOpenAI API key for AI-powered features - No OPENAI_TEMPERATURETemperature parameter for OpenAI completions (0.0-2.0) 0.1No OPENAI_MODEL_NAMEOpenAI model name to use gpt-4oNo
Variable Description Default Value Required SAML_SESSION_DURATIONSAML session validity duration in seconds 604800 (7 days)No SAML_CLEANUP_INTERVAL_SECONDSInterval in seconds for cleaning up expired SAML sessions (0=off) 0 (disabled)No SAML_CERTIFICATESAML service provider certificate in PEM format autogeneratedNo SAML_PRIVATE_KEYSAML service provider private key in PEM format autogeneratedNo
Variable Description Default Value Required CUSTOM_DOMAINS_RENEWAL_INTERVALInterval in seconds for checking certificate renewals 3600 (1 hour)No CUSTOM_DOMAINS_PROVISION_INTERVALInterval in seconds for provisioning new domains 30No CUSTOM_DOMAINS_CNAME_TARGETCNAME target for custom domains custom.getprobo.comNo
Variable Description Default Value Required ACME_DIRECTORYACME directory URL for certificate issuance https://acme-v02.api.letsencrypt.org/directoryNo ACME_EMAILEmail address for ACME account registration [email protected] No ACME_KEY_TYPEKey type for ACME certificates (RSA2048, RSA4096, EC256, EC384) EC256No ACME_ROOT_CACustom root CA certificate (PEM format) - No
These variables are only used if CONNECTOR_SLACK_CLIENT_ID is set.
Variable Description Default Value Required CONNECTOR_SLACK_CLIENT_IDSlack OAuth2 app client ID - No CONNECTOR_SLACK_CLIENT_SECRETSlack OAuth2 app client secret - Yes (if client ID set)CONNECTOR_SLACK_REDIRECT_URIOAuth2 redirect URI for Slack connector https://localhost:8080/api/console/v1/connectors/completeNo CONNECTOR_SLACK_AUTH_URLSlack OAuth2 authorization endpoint https://slack.com/oauth/v2/authorizeNo CONNECTOR_SLACK_TOKEN_URLSlack OAuth2 token endpoint https://slack.com/api/oauth.v2.accessNo CONNECTOR_SLACK_SIGNING_SECRETSlack app signing secret for webhook verification - Yes (if client ID set)
The following environment variables are required and must be set to secure random values in production:
PROBOD_ENCRYPTION_KEY - Generate with: openssl rand -base64 32
AUTH_COOKIE_SECRET - Generate with: openssl rand -base64 32
AUTH_PASSWORD_PEPPER - Generate with: openssl rand -base64 32
TRUST_AUTH_TOKEN_SECRET - Generate with: openssl rand -base64 32
# Generate all required secrets
export PROBOD_ENCRYPTION_KEY = $( openssl rand -base64 32 )
export AUTH_COOKIE_SECRET = $( openssl rand -base64 32 )
export AUTH_PASSWORD_PEPPER = $( openssl rand -base64 32 )
export TRUST_AUTH_TOKEN_SECRET = $( openssl rand -base64 32 )
echo " PROBOD_ENCRYPTION_KEY= $PROBOD_ENCRYPTION_KEY "
echo " AUTH_COOKIE_SECRET= $AUTH_COOKIE_SECRET "
echo " AUTH_PASSWORD_PEPPER= $AUTH_PASSWORD_PEPPER "
echo " TRUST_AUTH_TOKEN_SECRET= $TRUST_AUTH_TOKEN_SECRET "
The Docker entrypoint script follows this priority order:
If CONFIG_FILE exists (e.g., mounted from ConfigMap/volume), use it as-is
Otherwise, generate config file from environment variables
Environment variables use provided values or fall back to defaults
Script fails if required variables are missing (marked with :? in bash)
If you’re running probod directly outside of Docker, you must provide a YAML configuration file:
probod -cfg-file /path/to/your/config.yaml
See the Config File for the complete YAML configuration format and examples.