Docker Compose Environment Variables¶
Zammad’s Docker Compose supports several environment variables that are not
set by default. The best way to provide these is within the file .env
.
In case our default docker-compose.yml
is not good enough, please use
docker-compose.override.yml
to provide own changes.
Note
Unless stated other wise, below environment variables count for the whole Zammad stack and not single containers. Below grouping is to help you find them better, but do not reflect their container.
Docker Compose specific¶
- RESTART:
always
By default containers will be restarted in case they stopped for whatever reason.
- VERSION
This variables contains the version tag. Example:
3.6.0-20
We update this string from time to time, Docker Hub may contain more current tags to the moment you’re pulling.
Zammad¶
- AUTOWIZARD_JSON:
''
This variable allows you to provide initial configuration data for your instance. Autowizard JSON is out of scope of this documentation, however this example file should help.
Tip
This variable is specific to the
init
container.
- ZAMMAD_WEB_CONCURRENCY:
(unset)
Allows spawning
n
workers to allow more simultaneous connections for Zammads web UI.Please also note Configuration via Environment Variables in this regard.
Tip
This variable is specific to the
railsserver
container.- ZAMMAD_SESSION_JOBS_CONCURRENT:
(unset)
Allows spawning
n
session job workers to release pressure from Zammads background worker.Please also note Configuration via Environment Variables in this regard.
Tip
This variable is specific to the
scheduler
container.- ZAMMAD_PROCESS_SCHEDULED_JOBS_WORKERS:
(unset)
Allows spawning
1
independent scheduled job worker to release pressure from Zammads background worker.Please also note Configuration via Environment Variables in this regard.
Tip
This variable is specific to the
scheduler
container.- ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
(unset)
Allows spawning
n
delayed job workers to release pressure from Zammads background worker.Please also note Configuration via Environment Variables in this regard.
Tip
This variable is specific to the
scheduler
container.- RAILS_TRUSTED_PROXIES:
['127.0.0.1', '::1']
By default Zammad trusts localhost proxies only.
Danger
⚠ Only change this option if you know what you’re doing! ⚠
Tip
This variable is specific to the
init
container.
Elasticsearch¶
- ELASTICSEARCH_ENABLED:
true
Setting this variable to false will allow you to run your Zammad without Elasticsearch. Please note that we strongly advise against doing so.
Tip
This variable is specific to the
init
container.- ELASTICSEARCH_HOST:
zammad-elasticsearch
Provide a host name or address to your external Elasticsearch cluster.
Tip
This variable is specific to the
init
container.- ELASTICSEARCH_PORT:
9200
Provide a different port for Elasticsearch if needed.
Tip
This variable is specific to the
init
container.- ELASTICSEARCH_SCHEMA:
http
By default Elasticsearch is reachable via HTTP.
Tip
This variable is specific to the
init
container.- ELASTICSEARCH_NAMESPACE:
zammad
With this name space all Zammad related indexes will be created. Change this if you’re using external clusters.
Tip
This variable is specific to the
init
container.- ELASTICSEARCH_REINDEX:
true
By default the docker-compose will always re-index upon a restart. On big installations this may be troublesome.
Warning
Disabling this setting requires you to re-index your search index manually whenever that’s needed by upgrading to a new Zammad version!
Tip
This variable is specific to the
init
container.- ELASTICSEARCH_SSL_VERIFY:
true
Allows you to let the compose scripts ignore self signed SSL certificates for your Elasticsearch installation if needed.
Tip
This variable is specific to the
init
container.
Memcached¶
- MEMCACHE_SERVERS:
zammad-memcached:11211
Provide your own Memcached instance if you already have one existing.
Warning
Was
MEMCACHED_HOST
before 5.0.x!
Redis¶
- REDIS_URL:
redis://zammad-redis:6379
Provide your own Redis instance if you already have one.
Warning
This method currently does not allow authentication.
Nginx¶
- NGINX_PORT:
8080
The port Nginx will listen on.
Tip
This variable is specific to the
nginx
container.- NGINX_SERVER_NAME:
_
By default the Nginx container of Zammad will respond to all request. You can provide your IP / FQDN if you want to.
Tip
This variable is specific to the
nginx
container.- NGINX_SERVER_SCHEME:
\$scheme
If the Nginx container for Zammad is not the upstream server (aka you’re using another proxy in front of nginx)
$scheme
may be wrong. You can set the correct schemehttp
orhttps
if needed.Tip
😖 Can’t login because of CSRF token errors?
This usually affects systems with more than one proxy server only. For this to function you may have to tell your web server directly which connection type was used.
Warning
Do not use below options if you’re unsure, they may technically be a security issue!
The following options expect HTTPs connections which should be your goal.
Within your virtual host configuration, locate both directives
proxy_set_header X-Forwarded-Proto
and replace$scheme
byhttps
.Within your virtual host configuration just above the first
ProxyPass
directive insert:RequestHeader set X_FORWARDED_PROTO 'https' RequestHeader set X-Forwarded-Ssl on
Tip
This variable is specific to the
nginx
container.- ZAMMAD_RAILSSERVER_HOST:
zammad-railsserver
Host name of the rails server container.
- ZAMMAD_RAILSSERVER_PORT:
3000
Port of Zammads rails server.
Please also note Configuration via Environment Variables in this regard.
- ZAMMAD_WEBSOCKET_HOST:
zammad-websocket
Host name of Zammads websocket server.
Tip
This variable is specific to the
nginx
container.- ZAMMAD_WEBSOCKET_PORT:
6042
Port of Zammads websocket server.
Please also note Configuration via Environment Variables in this regard.
PostgreSQL¶
- POSTGRESQL_HOST:
zammad-postgresql
Host name of your PostgreSQL server. Use your own if you already have one.
- POSTGRESQL_PORT:
5432
Adjust the Port of your PostgreSQL server.
- POSTGRESQL_USER:
zammad
The database user for Zammad.
- POSTGRESQL_PASS:
zammad
The password of Zammads database user.
- POSTGRESQL_DB:
zammad_production
Zammads database to use.
- POSTGRESQL_DB_CREATE:
true
By default we will create the required database.
Note
On own database servers this setting might be troublesome.
Tip
This variable is specific to the
init
container.- RSYNC_ADDITIONAL_PARAMS:
--no-perms --no-owner
By default the compose will copy data without permissions and owners. This may not fit for your storage driver.
Tip
This variable is specific to the
init
container.