--- title: "Platform Environment Variables" --- # Platform Environment Variables > The environment variables listed on this page are supported by the Ignition platform and work on a wide variety of operating systems including Docker, Linux, Windows, and macOS. You can add environment variables to automate certain processes, access sensitive information, and even support more convenient solutions when customizing system setups. ## Environment Variables The available environment variables can either accept explicit values or load the target values from a file. :::note Some of the variable descriptions below make use of a `#` character. In these cases, you can specify the same variables multiple times by replacing the `#` character with a new number for each use. ``` GATEWAY_NETWORK_0_HOST=1.2.3.4 GATEWAY_NETWORK_0_PORT=8088 GATEWAY_NETWORK_0_DESCRIPTION="For tag server" GATEWAY_NETWORK_1_HOST=5.6.7.8 GATEWAY_NETWORK_1_PORT=8089 GATEWAY_NETWORK_1_DESCRIPTION="For edge server" ``` ::: |Environment Variable|Description| |:---|:---| |`TZ`|Set to a valid TZ database name, like `America/Los_Angeles`. See [List of tzdata Entries](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) for complete selection.| |`ACCEPT_IGNITION_EULA`|Set to `Y` to accept the Ignition EULA automatically (If using Docker, refer to the Docker [Licensing](platform\advanced-deployments\docker-image\docker-image.md#licensing) section for more details).| |`GATEWAY_ADMIN_USERNAME` |Defaults to `admin` when not specified, used to set value for initial Gateway auto-commissioning.| |`GATEWAY_ADMIN_PASSWORD`|Password value or salted hash to be used for initial Gateway auto-commissioning.| |`GATEWAY_HTTP_PORT`|Defaults to `8088` when not specified, used to override the HTTP port used by the Gateway.| |`GATEWAY_HTTPS_PORT`|Defaults to `8043` when not specified, used to override the HTTPS port used by the Gateway.| |`GATEWAY_GAN_PORT`|Defaults to `8060` when not specified, used to override the Gateway Network port used by the Gateway.| |`IGNITION_EDITION`|Set to `standard`, `edge`, or `maker`, used to set value for initial Gateway auto-commissioning.| |`IGNITION_LICENSE_KEY`|8-character license key (XXXX-XXXX) for leased activation (e.g. Maker Edition), used to set value for initial Gateway auto-commissioningYou can activate multiple 8-character license keys at the same time in a comma-delimited format, such as: `ABCD-1234,DCBA-4321,WXYZ-6789,ZYXW-9876`. Changes to this variable will update the leased activation license configuration after initial commissioning. | |`IGNITION_ACTIVATION_TOKEN`|Activation token for the license key. You can activate multiple 8-character license keys at the same time in a comma-delimited format, such as: `abcdef1234...789,bcdef2345...890`.Changes to this variable will update the leased activation license configuration after initial commissioning. | |`GATEWAY_NETWORK_#_HOST`|Hostname (or IP) for Outgoing GAN Connection Definition for #. | |`GATEWAY_NETWORK_#_PORT`|Port Number to use for connection #, defaults to 8060 when not specified.| |`GATEWAY_NETWORK_#_PINGRATE`|Ping Rate (ms) for connection #, defaults to 1000 when not specified.| |`GATEWAY_NETWORK_#_PINGMAXMISSED`|Number of missed pings allowed for connection #, defaults to 30 when not specified.| |`GATEWAY_NETWORK_#_ENABLED`|Set `true` or `false` to mark connection # enabled or disabled| |`GATEWAY_NETWORK_#_ENABLESSL`|Set `true` or `false` to enable SSL on connection #, defaults to `true`.| |`GATEWAY_NETWORK_#_WEBSOCKETTIMEOUT`|Timeout (ms) for web socket #, defaults to 10000 when not specified.| |`EAM_SETUP_INSTALLSELECTION`|Set `Agent` or `Controller` to define the EAM target config, defaults to Agent when not specified.| |`EAM_AGENT_CONTROLLERSERVERNAME`|Gateway Name (not hostname) of EAM Controller to bind to.| |`EAM_AGENT_SENDSTATSINTERVAL`|Interval (seconds) to send statistics to the EAM Controller, defaults to 5 when not specified.| |`EAM_CONTROLLER_ARCHIVEPATH`|Filesystem path to store EAM Archives (Gateway backups, etc), defaults to `/data/var/com.inductiveautomation.eam/eam_archive` when not specified.| |`EAM_CONTROLLER_DATASOURCE`|The database connection name to use for recording agent history.| |`EAM_CONTROLLER_ARCHIVELOCATION`|When set to MANUAL, the path set in `EAM_CONTROLLER_ARCHIVEPATH` will be used. Defaults to `AUTOMATIC`, if omitted.| |`EAM_CONTROLLER_LOWDISKTHRESHOLDMB`|Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value. | |`GATEWAY_MODULES_ENABLED`|A comma-delimited set of built-in and third party fully-qualified module identifiers that whitelist modules and restrict them from being uninstalled. **Note**: When using Docker, this feature will help with container re-creation events where you want to ensure only a subset of modules remain enabled. The third party modules listed [here](platform\advanced-deployments\docker-image\docker-image.md#module-identifiers-table) are automatically loaded and non-quarantined on Gateway launch. | |`DISABLE_QUICKSTART`|Boolean to decide whether or not the "Enable Quick Start" prompt will appear when new Gateways are created. A setting of `true` will skip the Quick Start prompt.| |`GATEWAY_NETWORK_#_DESCRIPTION`|Documentation about how the connection is used.| |`GATEWAY_NETWORK_ENABLED`|Set to `false` to disable using the Gateway Network. | |`GATEWAY_NETWORK_REQUIRESSL`|If `true`, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.| |`GATEWAY_NETWORK_REQUIRETWOWAYAUTH`|Enforces two-way SSL authentication. If `true`, you will need to install the remote machine's certificate on this machine and manually approve this machine's certificate on the remote machine.| |`GATEWAY_NETWORK_SENDTHREADS`|The maximum number of threads that will be used to upload messages. Applies to outgoing connections.| |`GATEWAY_NETWORK_RECEIVETHREADS`|The maximum number of threads that will be used to download messages. Applies to outgoing connections.| |`GATEWAY_NETWORK_RECEIVEMAX`|Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote Gateway. Applies to incoming connections.| |`GATEWAY_NETWORK_ALLOWINCOMING`|If `false`, only outward connections defined on this Gateway will be allowed.| |`GATEWAY_NETWORK_SECURITYPOLICY`|Dictates what connections are allowed. If set to `ApprovedOnly`, incoming connections must be approved from the Incoming Connections page. Other options include `Unrestricted` and `SpecifiedList`.| |`GATEWAY_NETWORK_WHITELIST`|If the connection policy is set to `SpecifiedList`, this is the comma-separated list of Gateway names which will be allowed to connect.| |`GATEWAY_NETWORK_ALLOWEDPROXYHOPS`|The maximum number of proxy hops that can be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.| |`GATEWAY_NETWORK_WEBSOCKETSESSIONIDLETIMEOUT`|The maximum number of milliseconds a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.| |`ACCEPT_MODULE_LICENSES`|A comma-delimited set of fully-qualified module identifiers to allow automated license acceptance of third party modules, which will reduce restart interruptions on Gateway startup or when upgrading from the Gateway Web UI and avoid quarantine states. The use of this environment variable implies acceptance of the respective EULAs, similar to `ACCEPT_IGNITION_EULA`.| |`ACCEPT_MODULE_CERTS`|A comma-delimited list of fully-qualified module identifiers to allow automated certificate acceptance of third party modules, which will reduce restart interruptions on Gateway startup or when upgrading from the Gateway Web UI and avoid quarantine states.| |`GATEWAY_NETWORK_ALLOWJAVASERIALIZATION`| If `true`, allows Java serialization so that 8.1 Gateways can communicate with 8.3 Gateways. This setting is disabled by default on new installs, but enabled for users upgrading from 8.1. **Note**: It is recommended to use this option only as a temporary solution while all 8.1 Gateways are being upgraded. Once all Gateways are updated, set to `false`. | |`IGNITION_ROOT_KEY_PASSWORD_FILE`| The path to a file in a folder with the root key password.| |`IGNITION_ROOT_KEY_PASSWORD`| The custom key to start the Gateway.| ## Specifying Environment Variables ### Docker You can define environment variables (ENV) in a Dockerfile, which applies them for any container built from it. Use the following format to specify an environment variable: ``` ENV: env_variable_name=value ``` ### Windows To add environment variables on Windows: 1. Open the Control Panel and navigate to **System and Security** > **System**. 2. Click **Advanced system settings**. 3. Click **Environment Variables...** 4. Then, select **New** or **Edit** as needed under the relevant Variables section to enter Variable names and values. 5. Click **OK** to add the environment variable. ### MacOS Setting environment variables on MacOS is as simple as opening the terminal window and adding the environment variable using the following syntax: `VARIABLE="A String Value" export VARIABLE` ```python title="Setting the IP_ADDRESS Environment Variable Example" IP_ADDRESS=121.0.0.1 export IP_ADDRESS ``` ### Linux For Linux users, environment variables are placed in different files for different intended purposes. System-Wide environment variables are configured in files such as `/etc/environment`, and are persistent across restarts for all users. The following steps detail how to add System-Wide environment variables: 1. Open the terminal. 2. Enter `sudo -H vi /etc/environment`. 3. Enter the required password. 4. Add the environment variable in the opened file, following `NAME="value"` formatting. In this example, we will be adding the IGNITION_EDITION environment variable. `IGNITION_EDITION=8.1.48` 5. Save and close the file. 6. Log out and back in to apply your saved changes.