Zato Docker Environment Variables

This document provides a comprehensive reference for all environment variables that can be used to configure Zato Docker containers.

Port Configuration

These variables control the network ports that Zato components listen on. You can override these to avoid port conflicts or to match your infrastructure requirements.

VariableDefaultDescription
Zato_Port_Dashboard8183Port for the Zato web dashboard. Access the admin interface at http://localhost:8183
Zato_Port_Server17010Port for the Zato server HTTP endpoint. This is where your services are exposed
Zato_Port_Load_Balancer11223Port for the HAProxy load balancer frontend
Zato_Port_SSH22SSH port for accessing the container. Change this if port 22 is already in use on your host

Database Configuration

Zato uses PostgreSQL for storing operational data and pub/sub messages. These variables configure the database connections.

VariableDefaultDescription
Zato_DB_Mainzato_db_main1Name of the main operational database (ODB)
Zato_DB_Pubsubzato_db_pubsub1Name of the pub/sub database for message storage
Zato_DB_Username_Mainzato_user_main1Database username for the main operational database
Zato_DB_Username_Pubsubzato_user_pubsub1Database username for the pub/sub database
Zato_PostgreSQL_Version16PostgreSQL version to use (build-time argument)

Message Broker Configuration (RabbitMQ)

These variables configure the connection to RabbitMQ, which Zato uses as a message broker for pub/sub functionality.

VariableDefaultDescription
Zato_Broker_ProtocolamqpProtocol for broker connection. Use amqp for standard connections
Zato_Broker_Address127.0.0.1:5672Address and port of the RabbitMQ broker
Zato_Broker_Virtual_Host/zato.internalRabbitMQ virtual host for Zato's internal use
Zato_Broker_UsernamezatoUsername for connecting to RabbitMQ
Zato_Broker_Internal_Password(generated)Password for the Zato broker user. Auto-generated if not provided
Zato_Broker_User_Password(generated)Password for the admin user in RabbitMQ management interface
Zato_Broker_Management_Port15672Port for RabbitMQ management interface
Zato_RabbitMQ_Version4.1.4RabbitMQ version to install (build-time argument)
Zato_RabbitMQ_Disable_Management_PluginFalseSet to True to disable RabbitMQ management statistics for better performance

Authentication and Passwords

These variables set passwords for various Zato components. If not provided, secure random passwords are generated automatically.

VariableDefaultDescription
Zato_Password(generated)Global password that sets all other passwords to the same value. Useful for development
Zato_Dashboard_Password(generated)Password for the admin user in the Zato web dashboard
Zato_IDE_Password(generated)Password for the ide_publisher user for IDE integration
Zato_SSH_Password(generated)SSH password for the zato user inside the container
Zato_ODB_Password(generated)Password for database users. Sets both main and pub/sub database passwords

Monitoring and Metrics

These variables configure Prometheus, Grafana, and metrics collection for monitoring Zato environments.

VariableDefaultDescription
Zato_Server_Metrics_Password(generated)Password for Prometheus to scrape metrics from Zato server
Zato_Broker_Metrics_Password(generated)Password for Prometheus to scrape metrics from pub/sub components
Zato_Grafana_Password(generated)Password for the admin user in Grafana dashboard
Zato_Prometheus_Password(generated)Password for accessing Prometheus interface
Zato_Node_Exporter_Version1.9.1Version of Prometheus Node Exporter to install (build-time argument)

Environment and Cluster Configuration

These variables define the Zato environment structure and cluster settings.

VariableDefaultDescription
Zato_Version4.1Zato version number
Zato_Env_Path/opt/zato/env/qs-1Path to the Zato environment directory inside the container
Zato_Cluster_Namecluster1Name of the Zato cluster
Zato_Env_Name(empty)Custom name for your environment, displayed during startup
Zato_Is_QuickstartTrueIndicates this is a quickstart environment

Deployment and Hot-Deploy Configuration

These variables control how services and configuration are deployed to the Zato server.

VariableDefaultDescription
Zato_Hot_Deploy_Dir/opt/hot-deploy/servicesDirectory where services are hot-deployed from
Zato_User_Conf_Dir/opt/hot-deploy/user-conf:/tmp/zato-user-confColon-separated paths for user configuration files
Zato_Python_Reqs_Opt/opt/hot-deploy/python-reqs/requirements.txtPath to Python requirements file for additional packages
Zato_Python_Reqs_Tmp/tmp/zato-user-reqs/requirements.txtAlternative path for Python requirements
Zato_Hot_Deploy_Prefer_SnapshotsTrueWhether to prefer snapshot versions when hot-deploying

Startup Behavior Configuration

These variables control what components start and how the container behaves during startup.

VariableDefaultDescription
Zato_Start_PubsubTrueWhether to start pub/sub components (publisher and pull consumer)
Zato_Start_Load_BalancerTrueWhether to start the HAProxy load balancer
Zato_Should_Import_Dev_PubSubFalseWhether to import development pub/sub configuration on startup
Zato_Log_Env_DetailsFalseSet to True to log environment details (passwords, ports) to files on startup
Zato_Suppress_Output(empty)Set to True to suppress verbose output during container startup
Zato_Verbose(empty)Set to True to enable verbose logging during startup
Zato_Build_Verbosity(empty)Controls verbosity level during build operations

Python and Build Configuration

These variables configure the Python environment and build process.

VariableDefaultDescription
Zato_Python_Version3.12Python version to use (build-time argument)
Zato_TLS_VerifyTrueWhether to verify TLS certificates in connections

Dashboard Configuration

These variables configure the Zato web dashboard behavior.

VariableDefaultDescription
Zato_Dashboard_CSRF_Trusted_Origins(empty)Comma-separated list of trusted origins for CSRF protection

Proxy Configuration

These variables configure HTTP/HTTPS proxy settings for the container.

VariableDefaultDescription
HTTP_PROXY(empty)HTTP proxy URL for outgoing connections
HTTPS_PROXY(empty)HTTPS proxy URL for outgoing connections
http_proxy(empty)Lowercase variant of HTTP proxy URL
https_proxy(empty)Lowercase variant of HTTPS proxy URL
NO_PROXY(empty)Comma-separated list of hosts to exclude from proxy
no_proxy(empty)Lowercase variant of NO_PROXY

Docker-Specific Variables

These variables are set automatically by the container and indicate the runtime environment.

VariableDefaultDescription
Zato_Is_DockerTrueIndicates the environment is running in Docker

Usage Examples

Basic Development Setup

docker run -it --rm \
    -p 8183:8183 \
    -p 17010:17010 \
    -e Zato_Password=mypassword \
    -e Zato_Log_Env_Details=True \
    ghcr.io/zatosource/zato-4.1:latest

Custom Port Configuration

docker run -it --rm \
    -p 9000:9000 \
    -p 18000:18000 \
    -e Zato_Port_Dashboard=9000 \
    -e Zato_Port_Server=18000 \
    -e Zato_Password=mypassword \
    ghcr.io/zatosource/zato-4.1:latest

Production Setup with External RabbitMQ

docker run -it --rm \
    -p 8183:8183 \
    -p 17010:17010 \
    -e Zato_Broker_Address=rabbitmq.example.com:5672 \
    -e Zato_Broker_Username=zato_prod \
    -e Zato_Broker_Internal_Password=secure_password \
    -e Zato_Dashboard_Password=admin_password \
    -e Zato_Env_Name=Production \
    ghcr.io/zatosource/zato-4.1:latest

Disable Management Plugin for Performance

docker run -it --rm \
    -p 8183:8183 \
    -p 17010:17010 \
    -e Zato_RabbitMQ_Disable_Management_Plugin=True \
    -e Zato_Password=mypassword \
    ghcr.io/zatosource/zato-4.1:latest

Notes

  • All passwords are automatically generated with secure random values if not explicitly provided
  • The Zato_Password variable is a convenience setting that overrides all other password variables
  • Generated passwords are stored in /opt/zato/env/details/ inside the container
  • When Zato_Log_Env_Details=True, all credentials are saved to /opt/zato/env/details/all-zato-env-details.json and .txt files
  • Port variables only affect the internal configuration; you still need to map ports with Docker's -p flag
  • Build-time arguments (Zato_RabbitMQ_Version, Zato_Python_Version, etc.) must be set during docker build, not docker run