Proxy and Connections

Proxy

This section covers the proxy configuration via environment variables. As an alternative, the proxy configuration is also possible via Zammad UI. You can find more information about that in the network section of the admin documentation.

Proxy configuration comparison

GUI configuration

Environment variable

Host OS access required

No

Yes

Automatically excluded loopback addresses

Yes

No

Configuration check

Yes

Manually via test script

Exceptions

Yes

No

The following environment variables can be used to configure proxy settings. Adjust the values according to your environment.

HTTP_PROXY

Variable for HTTP traffic. Set it to the address of your proxy server, including the port. Does not work in Docker context. Example:

export HTTP_PROXY="http://127.0.0.1:8080"
HTTPS_PROXY

Variable for HTTPS traffic. Set it to the address of your proxy server, including the port. Does not work in Docker context. Example:

export HTTPS_PROXY="http://127.0.0.1:8080"
NO_PROXY

Variable for addresses that should be accessed directly and without proxy. Expects a comma separated list of addresses and supports wildcards. Use a leading . as wildcard for subdomains, e.g. .example.com would match example.com and all of its subdomains. Make sure to include loopback addresses to exclude them from being routed via proxy. Example:

export NO_PROXY="localhost,127.0.0.1,.example.com"
ES_JAVA_OPTS

Variable for setting a proxy for Elasticsearch. By default, Elasticsearch does not communicate to external systems during the operation. However, there can be cases where this is needed, for example when downloading the ingest plugin for Elasticsearch versions below 8. Example:

export ES_JAVA_OPTS="-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8080"

Hint

Depending on your environment, you might want to use the lower case variants of the variables as well. If in doubt, set both variants by additionally specifying them with the values of the upper case variants, for example:

export http_proxy=$HTTP_PROXY

External Connections

During installation and operation of Zammad, some connections to online services are required. Depending on your installation method and Zammad configuration, a connection to the following services is made (maybe also helpful for firewall configuration):

Address

Comment

artifacts.elastic.co

Download of the ingest plugin (only ES < 8)

dl.packager.io

Download of OS package (package installation)

go.packager.io

As above; new package hosting service

geo.zammad.com

Used for geo data

google.com

Download of feast days for the calendar

index.rubygems.org

Download of gems for ruby

registry.npmjs.org

Download of js dependencies

You can use a script to check the connection state of your system. It tries to connect to the services mentioned above and shows the result. If every connection was successful, it displays a checkmark for each contacted service. Run it either by fetching it from the Zammad repository or by executing the local version on your Zammad machine.

Fetch script from remote
curl -fsSL https://raw.githubusercontent.com/zammad/zammad/refs/heads/stable/contrib/packager.io/test_download_dependencies_connection.sh | sh
Use local script
/opt/zammad/contrib/packager.io/test_download_dependencies_connection.sh