Environment variables
Introduction
Generally, AIStore (AIS) configuration comprises several sources:
- cluster (a.k.a. global) and node (or, local) configurations, the latter further “splitting” into local config per se and local overrides of the inherited cluster config;
aisnodecommand line;- environment variables (this document);
- finally, assorted low-level constants (also referred to as “hardcoded defaults”) that almost never have to change.
This enumeration does not include buckets (and their respective configurations). In AIS, buckets inherit a part of the cluster config that can be further changed on a per-bucket basis - either at creation time or at any later time, etc.
In effect, cluster configuration contains cluster-wide defaults for all AIS buckets, current and future.
For additional references, please see the last section in this document. The rest of it, though, describes only and exclusively environment variables - item 3 above.
Rules
First though, two common rules that, in fact, apply across the board:
- in AIS, all environment settings are optional
- if specified, environment variable will always override:
- the corresponding default constant (if exists), and/or
- persistent configuration (again, if the latter exists).
For example:
- in AIS cluster, each node has an
ID, which is persistent, replicated and unique; at node startup itsIDcan be overridden viaAIS_DAEMON_IDenvironment (see below); - environment
AIS_READ_HEADER_TIMEOUT, if specified, will be used instead of theapc.ReadHeaderTimeoutconstant in the code; AIS_USE_HTTPStakes precedence overnet.http.use_httpsvalue from the cluster configuration,
and so on.
Table of Contents
The remainder of this text groups AIS environment variables by their respective usages, and is structured as follows:
- Build Tags
- Primary
- Network
- Node
- HTTPS
- Local Playground
- Kubernetes
- Package: backend
- Package: stats
- Package: memsys
- Package: transport
separately, there’s authentication server config:
and finally:
Build Tags
Different AIS builds may (or may not) require different environment vars. For complete list of supported build tags, please see conditional linkage. Here’s a very brief and non-exhaustive intro:
Primary
Background: in a running AIS cluster, at any point in time there’s a single primary gateway that may also be administratively selected, elected, reelected. Hence, two related variables:
Network
Node
See also:
HTTPS
At first it may sound slightly confusing, but HTTP-wise AIS is both a client and a server.
All nodes in a cluster talk to each other using HTTP (or HTTPS) - the fact that inevitably implies a certain client-side configuration (and configurability).
In particular, AIS server-side HTTPS environment includes:
E.g., for local playground, typical usage starts from running
export AIS_USE_HTTPS=truefollowed by one of the usualmake deploycombinations.
In addition, all embedded (intra-cluster) clients in a cluster utilize the following environment:
Further references
- Generating self-signed certificates
- Deploying: 4 targets, 1 gateway, 6 mountpaths, AWS backend
- Accessing HTTPS-based cluster
- Testing with self-signed certificates
- Observability: TLS related alerts
- Updating and reloading X.509 certificates
- Switching cluster between HTTP and HTTPS
Local Playground
This group of environment variables is used exclusively by development scripts and integration tests.
See also:
Kubernetes
Kubernetes POD name is also reported via ais show cluster CLI - when it is a Kubernetes deployment, e.g.:
See related:
AWS S3
NOTE: for the most recent updates, please refer to the source.
Package: backend
AIS natively supports 3 (three) Cloud storages.
The corresponding environment “belongs” to the internal backend package and includes:
Notice in the table above that the variables S3_ENDPOINT and AWS_PROFILE are designated as global: cluster-wide.
The implication: it is possible to override one or both of them on a per-bucket basis:
AIS as S3 storage
Environment S3_ENDPOINT is important, and may also be a source of minor confusion. The reason: AIS itself provides S3 compatible interface.
For instance, on the client side you could say something like:
and then run existing S3 applications against an AIS cluster at 10.0.4.53 - with no changes (to the application).
Moreover, configure AIS to handle S3 requests at its ”/” root:
and re-specify S3_ENDPOINT environment to make it looking slightly more conventional:
To recap:
- use
S3_ENDPOINTto override thes3.amazonaws.comdefault; - specify
AWS_PROFILEto use a non-default (named) AWS profile
and separately:
- you could run existing S3 apps (with no changes) against AIS by using
S3_ENDPOINTon the client side
See also:
Package: stats
AIStore is a fully compliant Prometheus exporter.
StatsD was deprecated in v3.28 (Spring 2025) and completely removed in v4.0 (September 2025).
Package: memsys
Package: transport
See also: streaming intra-cluster transport.
AuthN
AIStore Authentication Server (AuthN) provides secure access control to AIStore via JSON Web Tokens.
A single AuthN service can support multiple AIS clusters, with no fixed limit.
The following variables can be used to configure deployment scripts and validation of tokens in AIStore:
For configuring the AuthN service and clients, see the AuthN Environment Variables.
When AuthN is disabled (i.e., not used), the respective ais config command will show something like:
Notice: this command is executed on the AIStore cluster, not AuthN.
See also: