Skip to content

This is the multi-page printable view of this section. .

Return to the regular view of this page.

Silo Server (minio)

Silo Server

The minio server command starts the Silo server process. The executable and subcommand names remain minio server as a compatibility contract:

minio server /mnt/disk{1...4}

For examples of deploying minio server on a bare metal environment, see Installation and Management.

For examples of deploying minio server on Kubernetes, see Deploying a Silo Tenant.

Syntax

Starts the minio server process.

The command has the following syntax:

minio server [FLAGS] HOSTNAME/DIRECTORIES [HOSTNAME/DIRECTORIES..]

The command accepts the following arguments:

HOSTNAME

mc-cmd

The hostname of a minio server process.

For standalone deployments, this field is optional. You can start a standalone server process with only the DIRECTORIES argument.

For distributed deployments, specify the hostname of each minio server in the deployment. The group of minio server processes represent a single Server Pool.

HOSTNAME supports expansion notation {x...y} to denote a sequential series of hostnames. Silo requires sequential hostnames to identify each minio server process in the set.

For example, https://minio{1...4}.example.net expands to:

  • https://minio1.example.net
  • https://minio2.example.net
  • https://minio3.example.net
  • https://minio4.example.net

You must run the minio server command with the same combination of HOSTNAME and DIRECTORIES on each host in the Server Pool.

Each additional HOSTNAME/DIRECTORIES pair denotes an additional Server Set for horizontal expansion of the Silo deployment. For more information on Server Pools, see Server Pool.

DIRECTORIES

mc-cmd

Required

The directories or drives the minio server process uses as the storage backend.

DIRECTORIES supports expansion notation {x...y} to denote a sequential series of folders or drives. For example, /mnt/disk{1...4} expands to:

  • /mnt/disk1
  • /mnt/disk2
  • /mnt/disk3
  • /mnt/disk4

The DIRECTORIES path(s) must be empty when first starting the minio process.

The minio server process requires at least 4 drives or directories to enable erasure coding.

Warning

Important

Silo recommends locally attached drives, where the DIRECTORIES path points to each drive on the host machine. Avoid network-attached storage for primary object data unless the complete stack has been validated, because network latency and failure semantics differ from locally attached storage.

For development or evaluation, you can specify multiple logical directories or partitions on a single physical volume to enable erasure coding on the deployment.

For production environments, do not treat multiple logical directories or partitions on one physical disk as independent failure domains. The apparent drive count does not provide physical-disk redundancy.

--address

mc-cmd

Optional

Binds the minio server process to a specific network address and port number. Specify the address and port as ADDRESS:PORT, where ADDRESS is an IP address or hostname and PORT is a valid and open port on the host system. MinIO supports both IPv4 and IPv6 addressing, provided that the specified addresses are routable and resolveable.

To change the port number for all IP addresses or hostnames configured on the host machine, specify only :PORT where PORT is a valid and open port on the host.

Note

Changed: RELEASE.2023-01-02T09-40-09Z

You can configure your hosts file to have MinIO only listen on specific IPs. For example, if the machine’s /etc/hosts file contains the following:

127.0.1.1       minioip
127.0.1.2       minioip

A command like the following would listen for API calls on port 9000 on both configured IP addresses.

minio server --address "minioip:9000" ~/miniodirectory

If omitted, minio binds to port 9000 on all configured IPv4 addresses, IPv6 addresses, and hostnames on the host machine.

--console-address

mc-cmd

Optional

Specifies a static port for the embedded MinIO Console.

Omit to direct MinIO to generate a dynamic port at server startup. The MinIO server outputs the port to the system log.

--ftp

mc-cmd

Optional

Enable and configure a File Transfer Protocol (FTP) or File Transfer Protocol over SSL/TLS (FTPS) server. Use this flag multiple times to specify an address port, a passive port range of addresses, or a TLS certificate and key as key-value pairs.

Valid keys:

  • address, which takes a single port to use for the server, typically 8021

  • (Optional) passive-port-range, which restricts the range of potential ports the server can use to transfer data, such as when tight firewall rules limit the port the FTP server can request for the connection

  • (Optional) tls-private-key, which takes the path to the user’s private key for accessing the MinIO deployment by TLS

    Use with tls-public-cert.

  • (Optional) tls-public-cert, which takes the path to the certificate for accessing the MinIO deployment by TLS

    Use with tls-private-key.

For MinIO deployments with TLS enabled, omit tls-private-key and tls-public-key to direct MinIO to use the default TLS keys for the MinIO deployment. See Network Encryption (TLS) for more information. You only need to specify a certificate and private key to a different set of TLS certificate and key than the MinIO default (for example, to use a different domain).

For example:

minio server http://server{1...4}/disk{1...4} \
--ftp="address=:8021"                         \
--ftp="passive-port-range=30000-40000"        \
--ftp="tls-private-key=path/to/private.key"   \
--ftp="tls-public-cert=path/to/public.crt"    \
...
--sftp

mc-cmd

Optional

Enable and configure a SSH File Transfer Protocol (SFTP) server. Use multiple times to specify each desired key-value pair.

The following table lists valid keys.

Key

Description

Valid values

address

Port to use for connecting to SFTP.

Any valid port number, typically 8022.

ssh-private-key

Path to the user’s private key file.

Absolute path or relative path from current location to the key file to use.

trusted-user-ca-key

Specifies a file containing public key of a certificate authority that is trusted to sign user certificates for authentication. The file must contain a user principals list, and the list must include the user(s) that can authenticate with the key.

Absolute path or relative path from current location to the user’s trusted certificate authority public key file.

pub-key-algos

Comma-separated list of the public key algorithms to support.

ssh-ed25519
sk-ssh-ed25519@openssh.com
sk-ecdsa-sha2-nistp256@openssh.com
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-256
rsa-sha2-512
ssh-rsa
ssh-dss

kex-algos

Comma-separated list in priority order of the key-exchange algorithms to support.

curve25519-sha256
curve25519-sha256@libssh.org
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1

cipher-algos

Comma-separated list of cipher algorithms to support

aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com
arcfour256
arcfour128
arcfour
aes128-cbc
3des-cbc

mac-algos

Comma-separated list in preference order of MAC algorithms to support. Based on RFC 4253 section 6.4 with the exception of hmac-md5 variants, which are end of life.

hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
hmac-sha2-256
hmac-sha2-512
hmac-sha1
hmac-sha1-96

disable-password-auth

Disable password authentication.

true

For example:

minio server http://server{1...4}/disk{1...4}                                 \
--sftp="address=:8022" --sftp="ssh-private-key=/home/miniouser/.ssh/id_rsa"   \
--sftp="kex-algos=diffie-hellman-group14-sha256,curve25519-sha256@libssh.org" \
...
--certs-dir, -S

mc-cmd

Optional

Specifies the path to the folder containing certificates the minio process uses for configuring TLS/SSL connectivity.

The contents of the specified folder must follow that of the default path structure. For example, the path contents of --certs-dir /etc/minio should resemble the following:

/etc/minio
  private.key
  public.crt
  domain.tld/
    private.key
    public.crt
  CAs/
    full-chain-ca.crt

Omit to use the default directory paths:

  • Linux/macOS: ${HOME}/.minio/certs
  • Windows: %%USERPROFILE%%\.minio\certs.

See Network Encryption (TLS) for more information on TLS/SSL connectivity.

Warning

Important

MinIO Server RELEASE.2023-12-09T18-17-51Z removes the deprecated --config-dir | -C parameter. Deployments using this flag may start without TLS enabled. Replace those parameters with --certs-dir | -S and restart to re-enable TLS.

--quiet

mc-cmd

Optional

Disables startup information.

--anonymous

mc-cmd

Optional

Hides sensitive information from logging.

--json

mc-cmd

Optional

Outputs server logs and startup information in JSON format.

Note

Note

You can define any of the minio parameters above by setting them in the MINIO_OPTS environment variable. This variable takes as its value a single string that contains any of the above parameters and their values that you want to set when starting the MinIO Server.

Settings

You can perform other customizations to the MinIO Server process by defining additional Configuration Values or Environment Variables.

Many configuration values and environment variables define the same value. If you set both a configuration value and the matching environment variable, MinIO uses the value from the environment variable.

1 - Settings Overview

The minio server process stores its configuration in the storage backend directory.

MinIO Settings

MinIO settings define runtime behavior of the MinIO server process.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Additional settings include those to customize:

1.1 - Core Settings

This page covers settings that control core behavior of the MinIO process.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

MinIO Server CLI Options

MINIO_OPTS

envvar

There is no configuration setting for this variable, as these settings apply at server startup.

Optional

Set a string of parameters to use when starting the MinIO Server.

For Unix-like systems using the recommended MinIO systemd service, use the /etc/default/minio file and create an environment variable MINIO_OPTS for specifying parameters to append to the minio systemd process:

# Editing /etc/default/minio

MINIO_OPTS=' --console-address=":9001" --ftp="address=:8021" --ftp="passive-port-range=30000-40000" '

For systems running minio on the command line, MINIO_OPTS is optional. To use it, declare the environment variable using standard shell semantics, then reference the environment variable when starting up the MinIO Server:

export MINIO_OPTS=' --console-address=":9001" --ftp="address=:8021" --ftp="passive-port-range=30000-40000" '

minio server $MINIO_OPTS ...

# The above is equivalent to running the following:
# minio server --console-address=":9001" \
#              --ftp="address=:8021"     \
#              --ftp="passive-port-range=30000-40000"
Warning

Important

The minio server command does not read $MINIO_OPTS directly. The variable only functions if used as described above.

Storage Volumes

MINIO_VOLUMES

envvar

The directories or drives the minio server process uses as the storage backend.

Functionally equivalent to setting minio server DIRECTORIES. Use this value when configuring MinIO to run using an environment file.

This setting does not have a configuration setting option.

Environment Variable File Path

MINIO_CONFIG_ENV_FILE

envvar

Specifies the full path to the file the MinIO server process uses for loading environment variables.

For systemd-managed files, set this value to the path of the environment file (/etc/default/minio) to direct MinIO to reload changes to that file when using mc admin service restart to restart the deployment.

This setting does not have a configuration setting option.

Workers for Expiration

MINIO_ILM_EXPIRY_WORKERS

envvar

Specifies the number of workers to make available to expire objects configured with ILM rules for expiration. When not set, MinIO defaults to using up to half of the available processing cores available.

This setting does not have a configuration setting option.

Domain

MINIO_DOMAIN

envvar

Enables Virtual Host-style requests to the MinIO deployment. Set the value to the Fully Qualified Domain Name (FQDN) for MinIO to accept incoming virtual host requests.

Omitting this setting directs MinIO to only accept the default path-style requests.

For example, consider a MinIO deployment with an assigned FQDN of minio.example.net.

  • With path-style lookups, applications can access the bucket using its full path as minio.example.net/mybucket.
  • With virtual-host lookups, application can access the bucket as a virtual host as mybucket.minio.example.net/.
Warning

Important

If you configure MINIO_DOMAIN, you must consider all subdomains of the specified FQDN as exclusively assigned for use as bucket names. Any MinIO services which conflict with those domains, such as replication targets, may exhibit unexpected or undesired behavior as a result of the collision.

For example, if setting MINIO_DOMAIN=minio.example.net, you cannot assign any subdomains of minio.example.net (in the form of *.minio.example.net) to any MinIO service or target. This includes hostnames for use with bucket, batch, or site replication.

This setting does not have a configuration setting option.

Scanner Speed

MINIO_SCANNER_SPEED

envvar

scanner speed

mc-conf

Manage the maximum wait period for the scanner when balancing MinIO read/write performance to scanner processes.

MinIO utilizes the scanner for bucket replication, site replication, lifecycle management, and healing tasks.

Valid values include:

fastest

Removes scanner wait on read/write latency, allowing the scanner to operate at full-speed and IOPS consumption. This setting may result in reduced read and write performance.

fast

Sets a short scanner wait time on read/write latency, allowing the scanner to operate at a higher speed and IOPS consumption. This setting may result in reduced read and write performance.

default

Sets a moderate scanner wait time on read/write latency, allowing the scanner to operate at a balanced speed and IOPS consumption. This setting seeks to maintain read and write performance while allowing ongoing scanner activity.

slow

Sets a medium scanner wait time on read/write latency, where the scanner operates at a reduced speed and IOPS consumption. This setting allows better read and write performance while reducing scanner performance.

May impact scanner-dependent features, such as lifecycle management and replication.

slowest

Sets a large scanner wait time on read/write latency, where the scanner operates at a substantially lower speed and IOPS consumption. This setting prioritizes read and write operations at the potential cost of scanner operations.

May impact scanner-dependent features, such as lifecycle management and replication.

Batch Replication

This setting does not have a configuration setting option.

Data Compression

The following section documents settings for enabling data compression for objects. See Data Compression for tutorials on using these configuration settings.

All of the settings in this section fall under the following top-level key:

compression

mc-conf

Enable Compression

MINIO_COMPRESSION_ENABLE

envvar

compression enable

mc-conf

Optional

Set to on to enable data compression for new objects. Defaults to off.

Enabling or disabling data compression does not change existing objects.

Allow Encryption

MINIO_COMPRESSION_ALLOW_ENCRYPTION

envvar

compression allow_encryption

mc-conf

Optional

Set to on to encrypt objects after compressing them. Defaults to off.

Note

Encrypting compressed objects may compromise security

MinIO strongly recommends against encrypting compressed objects. If you require encryption, carefully evaluate the risk of potentially leaking information about the contents of encrypted objects.

Compression Extensions

MINIO_COMPRESSION_EXTENSIONS

envvar

compression extensions

mc-conf

Optional

Comma-separated list of the file extensions to compress. Setting a new list of file extensions replaces the previously configured list. Defaults to ".txt, .log, .csv, .json, .tar, .xml, .bin".

Note

Changed: RELEASE.2024-03-15T01-07-19Z

Specify "*" to direct MinIO to compress all supported file types.

MinIO does not support compressing file types on the Excluded File Types list, even if explicitly specified in this argument.

Compression MIME Types

MINIO_COMPRESSION_MIME_TYPES

envvar

compression mime_types

mc-conf

Optional

Comma-separated list of the MIME types to compress. Setting a new list of types replaces the previously configured list. Defaults to "text/*, application/json, application/xml, binary/octet-stream".

Note

Default excluded files

Some types of files cannot be significantly reduced in size. MinIO will not compress these, even if specified in an mime_types argument. See Excluded types for details.

Comments

This setting does not have an environment variable option. Use the configuration setting instead.

compression comment

envvar

Optional

Specify a comment to associate with the data compression configuration.

Erasure Stripe Size

MINIO_ERASURE_SET_DRIVE_COUNT

envvar

This setting does not have a configuration setting option.

Optional

The erasure set size to apply for all drives in a given server pool.

If you set this value, you must do so before you initialize the cluster The selected stripe size is immutable after the cluster has been initialized and affects any future server pools added to the cluster.

MinIO SUBNET users should log in and open an issue to discuss stripe size settings prior to implementing them in any environment.

Caution

Warning

Do not change the stripe size setting unless directed to by MinIO engineering.

Changes to stripe size have significant impact to deployment functionality, availability, performance, and behavior. MinIO’s stripe selection algorithms set appropriate defaults for the majority of workloads. Changing the stripe size from this default is unusual and generally not necessary or advised.

Maximum Object Versions

MINIO_API_OBJECT_MAX_VERSIONS

envvar

api object_max_versions

mc-conf

Optional

Defines the default maximum versions to allow per object.

By default, MinIO allows up to the maximum value of an Int64 versions per object, or over 9.2 quintillion.

Note

Note

MinIO versions from RELEASE.2023-08-04T17-40-21Z to RELEASE.2024-03-26T22-10-45Z had a default limit of 10,000 object versions. This setting can be used to override that limit to another value.

Arbitrarily high versions per objects may cause performance degradation on some operations, such as LIST. This is especially true on systems running budget hardware or spinning drives (HDD). Applications or workloads which produce thousands or more versions per object may require design or architecture review to mitigate potential performance degradations.

Setting a limit of no more than 100 should provide enough versions for most typical use cases.

Client Source Address Trust

MINIO_API_TRUSTED_PROXIES

envvar

Specifies which peers may tell the server where a request came from.

By default MinIO believes the X-Forwarded-For, X-Real-IP and RFC 7239 Forwarded headers from any peer, so a client with direct network access to the API port can set its own apparent source address. That address feeds aws:SourceIp policy conditions, the audit log remotehost field, and event notification Host fields.

Set this to a comma-separated list of addresses or CIDR blocks to believe forwarded headers only from those peers. The forwarding chain is then read right to left past listed hops, which also discards the client-supplied left-most entry that an appending proxy leaves in place — the stock nginx $proxy_add_x_forwarded_for recipe and HAProxy’s added second header line both produce one.

Set this to none to believe no forwarding header at all and always use the peer address.

Note

Note

Unset is the default and preserves the historical behaviour, so this setting is inert until you configure it.

List the proxies themselves, not the subnet they sit in. Listed entries are skipped while walking the chain, so a range that also covers clients lets those clients forge. Multi-node deployments must include their own node addresses, because MinIO forwards some requests between nodes. Loopback is always trusted as a peer so FTP and SFTP keep attributing their sessions. A malformed value, or one that names no proxy at all, stops startup.

If you use IpAddress or NotIpAddress policy conditions, they are not enforceable until this setting names your proxies, or the deployment is otherwise unreachable except through them.

This setting does not have a configuration setting option.

Legacy Bucket Resource Matching

MINIO_API_LEGACY_BUCKET_RESOURCE_MATCH

envvar

Set to on to restore the historical matching of IAM policy resources for bucket-level requests.

By default, twelve bucket-level write actions are not authorized through an object-only resource pattern such as arn:aws:s3:::mybucket/*. See Bucket and Object Resources for the action list and for the policy change that grants them properly.

Setting this to on returns to matching bucket-level requests against the string mybucket/, which an object pattern also matches. It is read once at startup and is intended as a temporary measure while stored policies are updated.

Warning

This restores an over-grant

The historical matching is what allowed a principal holding only s3:* on arn:aws:s3:::mybucket/* to rewrite the bucket policy — including making the bucket public — or to delete the bucket. The switch is all-or-nothing: enabling it for one action reopens all twelve.

This setting does not have a configuration setting option.

1.2 - Root Access Settings

This page covers settings that control root (superuser) access for the MinIO process. The root user has complete access and permissions to perform operations on the MinIO deployment.

Root User and Root Password are required even if you use the MinIO Key Encryption Service or other key management utility.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Root User

MINIO_ROOT_USER

envvar

The access key for the root user.

Caution

Warning

If MINIO_ROOT_USER is unset, minio defaults to minioadmin.

NEVER use the default credentials in production environments. MinIO strongly recommends specifying a unique, long, and random MINIO_ROOT_USER value for all environments.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Root Password

MINIO_ROOT_PASSWORD

envvar

The secret key for the root user.

Caution

Warning

If MINIO_ROOT_PASSWORD is unset, minio defaults to minioadmin.

NEVER use the default credentials in production environments. MinIO strongly recommends specifying a unique, long, and random MINIO_ROOT_PASSWORD value for all environments.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Root Access

MINIO_API_ROOT_ACCESS

envvar

api root-access

mc-conf

Note

Added: MinIO

Server RELEASE.2023-05-04T21-44-30Z

Specify on to enable and off to disable the root user account. Disabling the root service account also disables all service accounts associated with root, excluding those used by site replication. Defaults to on.

Warning

Important

If you disable root API access with this setting, you must still set a root user and a root password for internal use.

Ensure you have at least one other admin user, such as one with the consoleAdmin policy, before disabling the root account. If you do not have another admin user, disabling the root account locks administrative access to the deployment.

You can use this variable to temporarily override the configuration setting and re-enable root access to the deployment.

To reset after an unintentional lock, set MINIO_API_ROOT_ACCESS on to override this setting and temporarily re-enable the root account. You can then change this setting to on or make the necessary user/policy changes to ensure normal administrative access through other non-root accounts.

Unique Root Credentials

Note

Added: Server

RELEASE.2024-03-03T17-50-39Z

MinIO automatically generates unique root credentials if all of the following conditions are true:

When those conditions are met at startup, MinIO uses the KMS to generate unique root credentials for the deployment using a hash-based message authentication code (HMAC).

If MinIO generates such credentials, the key used to generate the credentials must remain the same and continue to exist. All data on the deployment is encrypted with this key!

To rotate the generated root credentials, generate a new key in the KMS, then update the value of the MINIO_KMS_KES_KEY_NAME with the new key.

1.3 - Erasure Code Settings

This page covers settings that configure the Erasure Code parity to use for objects written to the MinIO cluster. This impacts how MinIO uses the space on the drive(s) and how MinIO can recover objects stored on lost drives or similar issues.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Standard Storage Class

Note

Note

MinIO Storage Classes are distinct from AWS Storage Classes.

AWS Storage Classes refer to the specific storage tier on which to store a given object, such as hot or glacier storage. MinIO Storage Classes affect the erasure code parity setting used and relate to Availability and Resiliency of objects.

For tiering from one type of storage to another, such as for cost management purposes, see Object Transition (“Tiering”).

MINIO_STORAGE_CLASS_STANDARD

envvar

storage_class standard

mc-conf

The parity level for the deployment. MinIO shards objects written with the default STANDARD storage class using this parity value.

MinIO references the x-amz-storage-class header in request metadata for determining which storage class to assign an object. The specific syntax or method for setting headers depends on your preferred method for interfacing with the MinIO server.

Specify the value using EC:M notation, where M refers to the number of parity blocks to create for the object.

The following table lists the default values based on the erasure set size of the initial server pool in the deployment:

Erasure Set Size Default Parity (EC:N)
1 EC:0
2-3 EC:1
4-5 EC:2
6 - 7 EC:3
8 - 16 EC:4

The minimum supported value is 0, which indicates no erasure coding protections. These deployments rely entirely on the storage controller or resource for availability / resiliency.

The maximum value depends on the erasure set size of the initial server pool in the deployment, where the upper bound is ERASURE_SET_SIZE2\frac{\text{ERASURE\_SET\_SIZE}}{2}. For example, a deployment with erasure set stripe size of 16 has a maximum standard parity of 8.

You can change this value after startup to any value between 0 and the upper bound for the erasure set size. MinIO only applies the changed parity to newly written objects. Existing objects retain the parity value in place at the time of their creation.

Reduced Redundancy Storage Class

Note

Note

MinIO Storage Classes are distinct from AWS Storage Classes.

AWS Storage Classes refer to the specific storage tier on which to store a given object, such as hot or glacier storage. MinIO Storage Classes affect the erasure code parity setting used and relate to Availability and Resiliency of objects.

For tiering from one type of storage to another, such as for cost management purposes, see Object Transition (“Tiering”).

MINIO_STORAGE_CLASS_RRS

envvar

storage_class rrs

mc-conf

The parity level for objects written with the REDUCED storage class.

MinIO references the x-amz-storage-class header in request metadata for determining which storage class to assign an object. The specific syntax or method for setting headers depends on your preferred method for interfacing with the MinIO server.

Specify the value using EC:M notation, where M refers to the number of parity blocks to create for the object.

This value must be less than or equal to MINIO_STORAGE_CLASS_STANDARD.

You cannot set this value for deployments with an erasure set size less than 2. Defaults to EC:1 for deployments with erasure set size greater than 1. Defaults to EC:0 for deployments of erasure set size of 1.

Parity Retention Optimization

MINIO_STORAGE_CLASS_OPTIMIZE

envvar

storage_class optimize

mc-conf

MinIO by default automatically “upgrades” parity for an object if the destination erasure set maintains write quorum but has one or more drives offline. This behavior helps ensure that the given object maintains the same availability as objects written to the healthy erasure set.

Specify capacity to this setting to direct MinIO to not create any additional parity for the object. This prioritizes the overall capacity of the cluster at the cost of potentially reduced object availability in the event more drives in that erasure set fail.

Comment

MINIO_STORAGE_CLASS_COMMENT

envvar

This setting does not have a configuration setting option.

Adds a comment to the storage class settings.

1.4 - Silo Console Settings

Note

Changed: RELEASE.2025-05-24T17-08-30Z

The Console now presents only object browser capabilities similar to those available through the mc tool. For administrative interactions, such as user management, use the mc admin command.

Some of the settings on this page may no longer be relevant for newer deployments.

This page covers settings that manage access and behavior for the MinIO Console.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Browser Settings

The following settings control behavior for the embedded MinIO Console.

MinIO Console

Optional

MINIO_BROWSER

envvar

Specify off to disable the embedded MinIO Console.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Animation

Optional

MINIO_BROWSER_LOGIN_ANIMATION

envvar

Note

Added: MinIO

Server RELEASE.2023-05-04T21-44-30Z

Specify off to disable the animated login screen for the MinIO Console. Defaults to on.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Browser Redirect

Optional

MINIO_BROWSER_REDIRECT

envvar

Note

Added: MinIO

Server RELEASE.2023-09-16T01-01-47Z

Specify whether requests from a web browser automatically redirect to the Console address. Defaults to true.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Browser Redirect URL

Optional

MINIO_BROWSER_REDIRECT_URL

envvar

Specify the Fully Qualified Domain Name (FQDN) the MinIO Console listens for incoming connections on.

If you want to host the MinIO Console exclusively from a reverse-proxy service, you must specify the hostname managed by that service.

For example, consider a reverse proxy configured to route https://example.net/minio/ to the MinIO Console. You must set this environment variable to match that hostname for the Console to both listen and respond to requests using that hostname.

If you omit this variable, the Console listens and responds to all IP addresses or hostnames associated to the host machine on which the MinIO Server runs.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Session Duration

Optional

MINIO_BROWSER_SESSION_DURATION

envvar

Note

Added: MinIO

Server RELEASE.2023-08-23T10-07-06Z

Specify the duration of a browser session for working with the MinIO Console.

MinIO supports the following units of time measurement:

  • s - seconds, “60s”
  • m - minutes, “60m”
  • h - hours, “24h”
  • d - days, “7d”

Defaults to 12h.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Log Query URL

Optional

MINIO_LOG_QUERY_URL

envvar

Specify the URL of a PostgreSQL service to which MinIO writes Audit logs. The embedded MinIO Console provides a Log Search tool that allows querying the PostgreSQL service for collected logs.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Content Security Policy

Optional

Configure MinIO Console to generate a Content-Security-Policy header in HTTP responses. Defaults to default-src 'self' 'unsafe-eval' 'unsafe-inline';

MINIO_BROWSER_CONTENT_SECURITY_POLICY

envvar

export MINIO_BROWSER_CONTENT_SECURITY_POLICY="default-src 'self' 'unsafe-eval' 'unsafe-inline';"
browser csp_policy

mc-conf

mc admin config set browser \
   csp_policy="default-src 'self' 'unsafe-eval' 'unsafe-inline';" \
   [ARGUMENT=VALUE ...]

Strict Transport Security

Optional

Configure MinIO console to generate a Strict-Transport-Security header in HTTP responses.

To generate the header, you must set a duration using either MINIO_BROWSER_HSTS_SECONDS or hsts_seconds. Other HSTS settings are optional.

MINIO_BROWSER_HSTS_SECONDS

envvar

The max_age the configured policy remains in effect, in seconds. Defaults to 0, disabled. You must configure a non-zero duration to enable the Strict-Transport-Security header.

export MINIO_BROWSER_HSTS_SECONDS=31536000
MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS

envvar

Set to on to also apply the configured HSTS policy to all MinIO Console subdomains. Defaults to off.

export MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS="on"
MINIO_BROWSER_HSTS_PRELOAD

envvar

Set to on to direct the client browser to add the MinIO Console domain to its HSTS preload list. Defaults to off.

export MINIO_BROWSER_HSTS_PRELOAD="on"

The following configuration settings require a service restart to take effect. To restart the service, use mc admin service restart.

browser hsts_seconds

mc-conf

The max_age the configured policy remains in effect, in seconds. Defaults to 0, disabled. You must configure a non-zero duration to enable the Strict-Transport-Security header.

mc admin config set browser \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]
browser hsts_include_subdomains

mc-conf

Set to on to also apply the configured HSTS policy to all MinIO Console subdomains. Defaults to off.

mc admin config set browser \
   hsts_include_subdomains="on" \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]
browser hsts_preload

mc-conf

Set to on to direct the client browser to add the MinIO Console domain to its HSTS preload list. Defaults to off.

mc admin config set browser \
   hsts_preload="on" \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]

Examples

The following examples show the rendered header for the given configuration settings. The equivalent environment variables generate the same result. All examples use a value of 31536000, which is the number of seconds in a calendar year (365 days).

hsts_seconds

mc admin config set ALIAS browser hsts_seconds=31536000
Strict-Transport-Security: max-age=31536000

hsts_include_subdomains

mc admin config set ALIAS browser hsts_seconds=31536000 hsts_include_subdomains=on
Strict-Transport-Security: max-age=31536000; includeSubDomains

hsts_preload

mc admin config set ALIAS browser hsts_seconds=31536000 hsts_include_subdomains=on hsts_preload=on
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Referrer Policy

Optional

Configure MinIO Console to generate a Referrer-Policy header in HTTP responses. Defaults to strict-origin-when-cross-origin.

MINIO_BROWSER_REFERRER_POLICY

envvar

export MINIO_BROWSER_REFERRER_POLICY="strict-origin-when-cross-origin"
browser referrer_policy

mc-conf

mc admin config set browser \
   referrer_policy="strict-origin-when-cross-origin" \
   [ARGUMENT=VALUE ...]

Prometheus Settings

The following settings manage how MinIO interacts with your Prometheus service.

Prometheus URL

Optional

MINIO_PROMETHEUS_URL

envvar

Specify the URL for a Prometheus service configured to scrape MinIO metrics.

The MinIO Console populates the Dashboard with cluster metrics using the minio-job Prometheus scraping job.

If you are using a standalone MinIO Console process, this variable corresponds with CONSOLE_PROMETHEUS_URL.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Prometheus Job ID

Optional

MINIO_PROMETHEUS_JOB_ID

envvar

Specify the custom Prometheus job ID used for scraping MinIO metrics.

MinIO defaults to minio-job.

If you are using a standalone MinIO Console process, this variable corresponds with CONSOLE_PROMETHEUS_JOB_ID.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

Prometheus Auth Token

Optional

MINIO_PROMETHEUS_AUTH_TOKEN

envvar

Specify the basic auth token the Console should use to connect to a Prometheus service.

For example, a basic auth token you might use could resemble the following:

eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW8iLCJleHAiOjQ4NTAwMzg0MDJ9.GZCKR3d0FH2TCvNHSd39HaVfSuQVVV0s8glICBDmhT51V6CQ_hw8gTYlKHJmcpR8aHkqiJwCqcYJhaMmqwe00XY

If you are using a standalone MinIO Console process, this variable corresponds with CONSOLE_PROMETHEUS_AUTH_TOKEN.

This setting does not have a configuration variable setting. Use the Environment Variable instead.

1.5 - Metrics and Logging Settings

This page covers settings that control behavior related to MinIO metrics and logging. See Metrics and alerts for more information.

These settings configure publishing regular minio server logs and audit logs to an HTTP webhook. See Publish Server or Audit Logs to an External Service for more complete documentation.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Prometheus Authentication

This setting controls how MinIO authenticates to Prometheus.

MINIO_PROMETHEUS_AUTH_TYPE

envvar

This setting does not have a configuration setting option.

Specifies the authentication mode for the Prometheus scraping endpoints.

  • jwt - Default MinIO requires that the scraping client specify a JWT token for authenticating requests.

    Use mc admin prometheus generate to generate the necessary JWT bearer tokens.

  • public MinIO does not require that scraping clients authenticate their requests.

Server Logs

The following section documents settings for configuring MinIO to publish minio server logs to an HTTP webhook endpoint. See Publish Server Logs to HTTP Webhook for more complete documentation and tutorials on using these settings.

Defining Multiple Endpoints

You can specify multiple webhook endpoints as log targets by appending a unique identifier _ID for each set of related logging environment variables. For example, the following settings define two distinct server logs webhook endpoints:

Environment Variables
export MINIO_LOGGER_WEBHOOK_ENABLE_PRIMARY="on"
export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_PRIMARY="TOKEN"
export MINIO_LOGGER_WEBHOOK_ENDPOINT_PRIMARY="http://webhook-1.example.net"

export MINIO_LOGGER_WEBHOOK_ENABLE_SECONDARY="on"
export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_SECONDARY="TOKEN"
export MINIO_LOGGER_WEBHOOK_ENDPOINT_SECONDARY="http://webhook-2.example.net"
Configuration Setting
mc admin config set logger_webhook:primary \
   endpoint="http://webhook-01.example.net" [ARGUMENTS=VALUE ...]

mc admin config set logger_webhook:secondary \
   endpoint="http://webhook-02.example.net" [ARGUMENTS=VALUE ...]

Settings

Enable

MINIO_LOGGER_WEBHOOK_ENABLE

envvar

Specify "on" to enable publishing minio server logs to the HTTP webhook endpoint.

Requires specifying MINIO_LOGGER_WEBHOOK_ENDPOINT.

logger_webhook

mc-conf

The top level key for the configuration settings to configure logging to an HTTP webhook endpoint.

Endpoint

Required

MINIO_LOGGER_WEBHOOK_ENDPOINT

envvar

logger_webhook endpoint

mc-conf

The HTTP endpoint of the webhook.

Auth Token

Optional

MINIO_LOGGER_WEBHOOK_AUTH_TOKEN

envvar

An authentication token of the appropriate type for the endpoint. Omit for endpoints which do not require authentication.

To allow for a variety of token types, MinIO creates the request authentication header using the value exactly as specified. Depending on the endpoint, you may need to include additional information.

For example: for a Bearer token, prepend Bearer:

export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"

Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:

export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"

Consult the documentation for the desired service for more details.

This environment variable corresponds with the logger_webhook auth_token configuration setting.

logger_webhook auth_token

mc-conf

An authentication token of the appropriate type for the endpoint. Omit for endpoints which do not require authentication.

To allow for a variety of token types, MinIO creates the request authentication header using the value exactly as specified. Depending on the endpoint, you may need to include additional information.

For example: for a Bearer token, prepend Bearer:

   mc admin config set myminio logger_webhook   \
      endpoint="https://webhook-1.example.net"  \
      auth_token="Bearer 1a2b3c4f5e"

Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:

   mc admin config set myminio logger_webhook   \
        endpoint="https://webhook-1.example.net"  \
      auth_token="ServiceXYZ 1a2b3c4f5e"

Consult the documentation for the desired service for more details.

Batch Size

Note

Added: MinIO

Server RELEASE.2024-03-10T02-53-48Z

Optional

MINIO_LOGGER_WEBHOOK_BATCH_SIZE

envvar

logger_webhook batch_size

mc-conf

Collect and send the specified number of events to the webhook as a batch. If not set, MinIO sends one event per request.

Client Certificate

Optional

Requires also setting the Client Key.

MINIO_LOGGER_WEBHOOK_CLIENT_CERT

envvar

logger_webhook client_cert

mc-conf

The path to the mTLS certificate to use for authenticating to the webhook logger.

Client Key

Optional

Required if you define the Client Certificate.

MINIO_LOGGER_WEBHOOK_CLIENT_KEY

envvar

logger_webhook client_key

mc-conf

The path to the mTLS certificate key to use to authenticate with the webhook logger service.

Proxy

Optional

MINIO_LOGGER_WEBHOOK_PROXY

envvar

logger_webhook proxy

mc-conf

Note

Added: MinIO

RELEASE.2023-02-22T18-23-45Z

Define a proxy to use for the webhook logger when communicating from MinIO to external webhooks.

Queue Directory

Optional

Note

Added: RELEASE.2023-05-18T00-05-36Z

MINIO_LOGGER_WEBHOOK_QUEUE_DIR

envvar

logger_webhook queue_dir

mc-conf

Specify the directory path, such as /opt/minio/events, to enable MinIO’s persistent event store for undelivered messages. The MinIO process must have read, write, and list access on the specified directory.

MinIO stores undelivered events in the specified store while the webhook service is offline and replays the stored events when connectivity resumes.

Queue Size

Optional

MINIO_LOGGER_WEBHOOK_QUEUE_SIZE

envvar

logger_webhook queue_size

mc-conf

An integer value to use for the queue size for logger webhook targets.

Webhook Audit Logs

The following section documents environment variables for configuring MinIO to publish audit logs to an HTTP webhook endpoint. See Publish Audit Logs to HTTP Webhook for more complete documentation and tutorials on using these environment variables.

Multiple Targets

You can specify multiple webhook endpoints as audit log targets by appending a unique identifier _ID for each set of related logging settings.

For example, the following commands set two distinct audit log webhook endpoints:

export MINIO_AUDIT_WEBHOOK_ENABLE_PRIMARY="on"
export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_PRIMARY="TOKEN"
export MINIO_AUDIT_WEBHOOK_ENDPOINT_PRIMARY="http://webhook-1.example.net"
export MINIO_AUDIT_WEBHOOK_CLIENT_CERT_SECONDARY="/tmp/cert.pem"
export MINIO_AUDIT_WEBHOOK_CLIENT_KEY_SECONDARY="/tmp/key.pem"

export MINIO_AUDIT_WEBHOOK_ENABLE_SECONDARY="on"
export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_SECONDARY="TOKEN"
export MINIO_AUDIT_WEBHOOK_ENDPOINT_SECONDARY="http://webhook-1.example.net"
export MINIO_AUDIT_WEBHOOK_CLIENT_CERT_SECONDARY="/tmp/cert.pem"
export MINIO_AUDIT_WEBHOOK_CLIENT_KEY_SECONDARY="/tmp/key.pem"
audit_webhook

mc-conf

The top-level configuration key for defining an HTTP webhook target for publishing MinIO audit logs.

Use mc admin config set to set or update an HTTP webhook target. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set audit_webhook \
   endpoint="http://webhook.example.net" [ARGUMENTS=VALUE ...]

You can specify multiple HTTP webhook targets by appending [:name] to the top-level key. For example, the following commands set two distinct HTTP webhook targets as primary and secondary respectively:

mc admin config set audit_webhook:primary \
   endpoint="http://webhook-01.example.net" [ARGUMENTS=VALUE ...]


mc admin config set audit_webhook:secondary \
   endpoint="http://webhook-02.example.net" [ARGUMENTS=VALUE ...]

Settings

Enable

MINIO_AUDIT_WEBHOOK_ENABLE

envvar

Specify "on" to enable publishing audit logs to the HTTP webhook endpoint.

Requires specifying MINIO_AUDIT_WEBHOOK_ENDPOINT.

Configure an audit webhook to enable it. There is not a separate enable configuration setting.

Endpoint

Required

MINIO_AUDIT_WEBHOOK_ENDPOINT

envvar

audit_webhook endpoint

mc-conf

The HTTP endpoint of the webhook.

Auth Token

Optional

MINIO_AUDIT_WEBHOOK_AUTH_TOKEN

envvar

audit_webhook auth_token

mc-conf

An authentication token of the appropriate type for the endpoint. Omit for endpoints which do not require authentication.

To allow for a variety of token types, MinIO creates the request authentication header using the value exactly as specified. Depending on the endpoint, you may need to include additional information.

For example, for a Bearer token, prepend Bearer:

export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"

Modify the value according to the endpoint requirements.

A custom authentication format could resemble the following:

export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
mc admin config set myminio audit_webhook       \
         endpoint="http://webhook.example.net"  \
         auth_token="Bearer 1a2b3c4f5e"

Modify the value according to the endpoint requirements.

A command for a custom authentication format could resemble the following:

mc admin config set myminio audit_webhook       \
         endpoint="http://webhook.example.net"  \
         auth_token="ServiceXYZ 1a2b3c4f5e"

Consult the documentation for the desired service for more details.

Batch Size

Note

Added: MinIO

Server RELEASE.2024-03-10T02-53-48Z

Optional

MINIO_AUDIT_WEBHOOK_BATCH_SIZE

envvar

audit_webhook batch_size

mc-conf

Collect and send the specified number of events to the webhook as a batch. If not set, MinIO sends one event per request.

Client Certificate

Optional

MINIO_AUDIT_WEBHOOK_CLIENT_CERT

envvar

Requires also specifying MINIO_AUDIT_WEBHOOK_CLIENT_KEY.

audit_webhook client_cert

mc-conf

Requires also specifying client_key.

The x.509 client certificate to present to the HTTP webhook. Omit for webhooks which do not require clients to present a known TLS certificate.

Client Key

Optional

MINIO_AUDIT_WEBHOOK_CLIENT_KEY

envvar

Requires also specifying MINIO_AUDIT_WEBHOOK_CLIENT_CERT.

audit_webhook client_key

mc-conf

Requires specifying client_cert.

The x.509 private key to present to the HTTP webhook. Omit for webhooks which do not require clients to present a known TLS certificate.

Queue Directory

Optional

MINIO_AUDIT_WEBHOOK_QUEUE_DIR

envvar

audit_webhook queue_dir

mc-conf

Note

Added: RELEASE.2023-05-18T00-05-36Z

Specify the directory path, such as /opt/minio/events, to enable MinIO’s persistent event store for undelivered messages. The MinIO process must have read, write, and list access on the specified directory.

MinIO stores undelivered events in the specified store while the webhook service is offline and replays the stored events when connectivity resumes.

Queue Size

Optional

MINIO_AUDIT_WEBHOOK_QUEUE_SIZE

envvar

audit_webhook queue_size

mc-conf

An integer value to use for the queue size for audit webhook targets. The default is 100000 events.

Kafka Audit Logs

The following section documents environment variables for configuring MinIO to publish audit logs to a Kafka broker.

audit_kafka

mc-conf

The top-level configuration key for defining a Kafka broker target for publishing MinIO audit logs.

Use mc admin config set to set or update a Kafka audit target. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set audit_kafka \
   brokers="https://kafka-endpoint.example.net:9092" [ARGUMENTS=VALUE ...]

Settings

Enable

Required

MINIO_AUDIT_KAFKA_ENABLE

envvar

Set to "on" to enable the target.

Set to "off" to disable the target.

There is not a configuration setting for this value. Use the environment variable to disable a configured audit webhook target.

Brokers

Required

MINIO_AUDIT_KAFKA_BROKERS

envvar

audit_kafka brokers

mc-conf

A comma-separated list of Kafka broker addresses:

brokers="https://kafka-1.example.net:9092,https://kafka-2.example.net:9092"

At least one broker must be online and reachable by the MinIO server to initialize and send audit log events. MinIO checks each specified broker in order of specification.

Topic

Required

MINIO_AUDIT_KAFKA_TOPIC

envvar

audit_kafka topic

mc-conf

The name of the Kafka topic to associate to MinIO audit log events.

TLS

Optional

MINIO_AUDIT_KAFKA_TLS

envvar

audit_kafka tls

mc-conf

Set to "on" to enable TLS connectivity to the specified Kafka brokers.

Defaults to "off".

TLS Skip Verify

Optional

MINIO_AUDIT_KAFKA_TLS_SKIP_VERIFY

envvar

audit_kafka tls_skip_verify

mc-conf

Set to "on" to direct MinIO to skip verification of the Kafka broker TLS certificates.

You can use this option for enabling connectivity to Kafka brokers using TLS certificates signed by unknown parties, such as self-signed or corporate-internal Certificate Authorities (CA).

MinIO by default uses the system trust store and the contents of the MinIO CA directory for verifying remote client TLS certificates.

Defaults to "off" for strict verification of TLS certificates.

SASL

Optional

MINIO_AUDIT_KAFKA_SASL

envvar

Requires specifying MINIO_AUDIT_KAFKA_SASL_USERNAME and MINIO_AUDIT_KAFKA_SASL_PASSWORD.

audit_kafka sasl

mc-conf

Requires specifying sasl_username and sasl_password.

Set to "on" to direct MinIO to use SASL to authenticate against the Kafka brokers.

SASL Username

Optional

MINIO_AUDIT_KAFKA_SASL_USERNAME

envvar

Requires specifying MINIO_AUDIT_KAFKA_SASL and MINIO_AUDIT_KAFKA_SASL_PASSWORD.

audit_kafka sasl_username

mc-conf

Requires specifying sasl and sasl_password.

The SASL username MinIO uses for authentication against the Kafka brokers.

SASL Password

Optional

MINIO_AUDIT_KAFKA_SASL_PASSWORD

envvar

Requires specifying MINIO_AUDIT_KAFKA_SASL and MINIO_AUDIT_KAFKA_SASL_USERNAME.

audit_kafka sasl_password

mc-conf

Requires specifying sasl and sasl_username.

The SASL password MinIO uses for authentication against the Kafka brokers.

SASL Mechanism

Optional

MINIO_AUDIT_KAFKA_SASL_MECHANISM

envvar

Warning

Important

The PLAIN authentication mechanism sends credentials in plain text over the network. Use MINIO_AUDIT_KAFKA_TLS or to enable TLS connectivity to the Kafka brokers and ensure secure transmission of SASL credentials.

audit_kafka sasl_mechanism

mc-conf

Warning

Important

The PLAIN authentication mechanism sends credentials in plain text over the network. Use tls to enable TLS connectivity to the Kafka brokers and ensure secure transmission of SASL credentials.

The SASL mechanism MinIO uses for authentication against the Kafka brokers.

Defaults to plain.

TLS Client Auth

Optional

MINIO_AUDIT_KAFKA_TLS_CLIENT_AUTH

envvar

Requires specifying MINIO_AUDIT_KAFKA_CLIENT_TLS_CERT and MINIO_AUDIT_KAFKA_CLIENT_TLS_KEY.

audit_kafka tls_client_auth

mc-conf

Requires specifying client_tls_cert and client_tls_key.

Set to "on" to direct MinIO to use mTLS to authenticate against the Kafka brokers.

Client TLS Certificate

Optional

MINIO_AUDIT_KAFKA_CLIENT_TLS_CERT

envvar

audit_kafka client_tls_cert

mc-conf

The path to the TLS client certificate to use for mTLS authentication.

Client TLS Key

Optional

MINIO_AUDIT_KAFKA_CLIENT_TLS_KEY

envvar

audit_kafka client_tls_key

mc-conf

The path to the TLS client private key to use for mTLS authentication.

Version

Optional

MINIO_AUDIT_KAFKA_VERSION

envvar

audit_kafka version

mc-conf

The version of the Kafka broker MinIO expects at the specified endpoints.

MinIO returns an error if the Kakfa broker version does not match those specified to this setting.

Comment

Optional

MINIO_AUDIT_KAFKA_COMMENT

envvar

audit_kafka comment

mc-conf

A comment to associate with the configuration.

Queue Directory

Optional

MINIO_AUDIT_KAFKA_QUEUE_DIR

envvar

audit_kafka queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the Kafka service is offline and replays the stored events when connectivity resumes.

Queue Size

Optional

MINIO_AUDIT_KAFKA_QUEUE_SIZE

envvar

audit_kafka queue_size

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

1.6 - Bucket Notifications Settings

This page covers settings that control behavior related to MinIO bucket notifications.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Sync Events

Optional

MINIO_API_SYNC_EVENTS

envvar

api sync_events

mc-conf

Enables synchronous bucket notifications.

Specify on to direct MinIO to wait until the remote target returns success on receipt of an event before processing further events.

Defaults to off, or asynchronous bucket notifications where MinIO does not wait for the remote target to return success on receipt of an event.

Supported Notification Targets

Notifications require a target to receive the events. MinIO supports a variety of possible targets. Settings for each target type have their own pages. Select the appropriate link below for the type of target you use for notifications.

1.6.1 - AMQP Notification Settings

This page documents settings for configuring an AMQP service as a target for Bucket Notifications. See Publish Events to AMQP (RabbitMQ) for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple AMQP Targets

You can specify multiple AMQP service endpoints by appending a unique identifier _ID for each set of related AMQP settings to the top level key.

Examples

For example, the following commands set two distinct AMQP service endpoints as PRIMARY and SECONDARY respectively:

export MINIO_NOTIFY_AMQP_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_AMQP_URL_PRIMARY="amqp://user:password@amqp-endpoint.example.net:5672"

export MINIO_NOTIFY_AMQP_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_AMQP_URL_SECONDARY="amqp://user:password@amqp-endpoint.example.net:5672"

For example, MINIO_NOTIFY_AMQP_ENABLE_PRIMARY indicates the environment variable is associated to an AMQP service endpoint with ID of PRIMARY.

mc admin config set notify_amqp:primary \
   url="user:password@amqp://amqp-endpoint.example.net:5672" [ARGUMENT=VALUE ...]

mc admin config set notify_amqp:secondary \
   url="user:password@amqp://amqp-endpoint.example.net:5672" [ARGUMENT=VALUE ...]

Notice that for configuration settings, the unique identifier appends to amqp only, not to each individual argument.

Settings

Enable

MINIO_NOTIFY_AMQP_ENABLE

envvar

Requires specifying MINIO_NOTIFY_AMQP_URL if set to on.

Specify on to enable publishing bucket notifications to an AMQP endpoint.

Defaults to off.

notify_amqp

mc-conf

The top-level configuration key for defining an AMQP service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an AMQP service endpoint. The url argument is required for each target. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_amqp \
  url="amqp://user:password@endpoint:port" \
  [ARGUMENT="VALUE"] ...

URL

Required

MINIO_NOTIFY_AMQP_URL

envvar

notify_amqp url

mc-conf

Specify the AMQP server endpoint to which MinIO publishes bucket events. For example, amqp://myuser:mypassword@localhost:5672.

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Exchange

Optional

MINIO_NOTIFY_AMQP_EXCHANGE

envvar

notify_amqp exchange

mc-conf

Specify the name of the AMQP exchange to use.

Exchange Type

Optional

MINIO_NOTIFY_AMQP_EXCHANGE_TYPE

envvar

notify_amqp exchange_type

mc-conf

Specify the type of the AMQP exchange.

Routing Key

Optional

MINIO_NOTIFY_AMQP_ROUTING_KEY

envvar

notify_amqp routing_key

mc-conf

Specify the routing key for publishing events.

Mandatory

Optional

MINIO_NOTIFY_AMQP_MANDATORY

envvar

notify_amqp mandatory

mc-conf

Specify off to ignore undelivered messages errors. Defaults to on.

Durable

Optional

MINIO_NOTIFY_AMQP_DURABLE

envvar

notify_amqp durable

mc-conf

Specify on to persist the message queue across broker restarts. Defaults to off.

No Wait

Optional

MINIO_NOTIFY_AMQP_NO_WAIT

envvar

notify_amqp no_wait

mc-conf

Specify on to enable non-blocking message delivery. Defaults to off.

Internal

Optional

MINIO_NOTIFY_AMQP_INTERNAL

envvar

notify_amqp internal

mc-conf

Specify on to use the exchange only if it is bound to other exchanges. See the RabbitMQ documentation on Exchange to Exchange Bindings for more information on AMQP exchange binding.

Auto Deleted

Optional

MINIO_NOTIFY_AMQP_AUTO_DELETED

envvar

notify_amqp auto_deleted

mc-conf

Specify on to automatically delete the message queue if there are no consumers. Defaults to off.

Delivery Mode

Optional

MINIO_NOTIFY_AMQP_DELIVERY_MODE

envvar

notify_amqp delivery_mode

mc-conf

Specify 1 for set the delivery mode to non-persistent queue.

Specify 2 to set the delivery mode to persistent queue.

Queue Directory

Optional

MINIO_NOTIFY_AMQP_QUEUE_DIR

envvar

notify_amqp queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the AMQP service is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_AMQP_QUEUE_LIMIT

envvar

notify_amqp queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_AMQP_COMMENT

envvar

notify_amqp comment

mc-conf

Specify a comment for the AMQP configuration.

1.6.2 - Elasticsearch Notification Settings

This page documents settings for configuring an Elasticsearch service as a target for Bucket Notifications. See Publish Events to Elasticsearch for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple Elasticsearch Targets

You can specify multiple Elasticsearch service endpoints by appending a unique identifier _ID for each set of related settings. For example, the following commands set two distinct Elasticsearch service endpoints as PRIMARY and SECONDARY, respectively:

Examples

export MINIO_NOTIFY_ELASTICSEARCH_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_ELASTICSEARCH_URL_PRIMARY="https://user:password@elasticsearch-endpoint.example.net:9200"
export MINIO_NOTIFY_ELASTICSEARCH_INDEX_PRIMARY="bucketevents"
export MINIO_NOTIFY_ELASTICSEARCH_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_ELASTICSEARCH_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_ELASTICSEARCH_URL_SECONDARY="https://user:password@elasticsearch-endpoint.example.net:9200"
export MINIO_NOTIFY_ELASTICSEARCH_INDEX_SECONDARY="bucketevents"
export MINIO_NOTIFY_ELASTICSEARCH_FORMAT_SECONDARY="namespace"
mc admin config set notify_elasticsearch:primary \
   url="user:password@https://elasticsearch-endpoint.example.net:9200" \
   index="bucketevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_elasticsearch:secondary \
   url="user:password@https://elasticsearch-endpoint.example.net:9200" \
   index="bucketevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

Notice that for configuration settings, the unique identifier appends to notify_elasticsearch only, not to each individual argument.

Settings

Enable

Required

MINIO_NOTIFY_ELASTICSEARCH_ENABLE

envvar

Specify on to enable publishing bucket notifications to an Elasticsearch service endpoint.

Defaults to off.

Requires specifying the following additional environment variables if set to on:

notify_elasticsearch

mc-conf

The top-level configuration key for defining an Elasticsearch service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an Elasticsearch service endpoint. The following arguments are required for each target:

Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_elasticsearch \
  url="https://user:password@elasticsearch.example.com:9200" \
  [ARGUMENT="VALUE"] ... \

URL

Required

MINIO_NOTIFY_ELASTICSEARCH_URL

envvar

notify_elasticsearch url

mc-conf

Specify the Elasticsearch service endpoint to which MinIO publishes bucket events. For example, https://elasticsearch.example.com:9200.

MinIO supports passing authentication information using as URL parameters using the format PROTOCOL://USERNAME:PASSWORD@HOSTNAME:PORT.

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Index

Required

MINIO_NOTIFY_ELASTICSEARCH_INDEX

envvar

notify_elasticsearch index

mc-conf

Specify the name of the Elasticsearch index in which to store or update MinIO bucket events. Elasticsearch automatically creates the index if it does not exist.

Format

Required

MINIO_NOTIFY_ELASTICSEARCH_FORMAT

envvar

notify_elasticsearch format

mc-conf

Specify the format of event data written to the Elasticsearch index. MinIO supports the following values:

namespace

For each bucket event, MinIO creates a JSON document with the bucket and object name from the event as the document ID and the actual event as part of the document body. Additional updates to that object modify the existing index entry for that object. Similarly, deleting the object also deletes the corresponding index entry.

access

For each bucket event, MinIO creates a JSON document with the event details and appends it to the index with an Elasticsearch-generated random ID. Additional updates to an object result in new index entries, and existing entries remain unmodified.

Username

Optional

MINIO_NOTIFY_ELASTICSEARCH_USERNAME

envvar

notify_elasticsearch username

mc-conf

The username for connecting to an Elasticsearch service endpoint which enforces authentication.

Password

Optional

MINIO_NOTIFY_ELASTICSEARCH_PASSWORD

envvar

notify_elasticsearch password

mc-conf

The password for connecting to an Elasticsearch service endpoint which enforces authentication.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

Queue Directory

Optional

MINIO_NOTIFY_ELASTICSEARCH_QUEUE_DIR

envvar

notify_elasticsearch queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the Elasticsearch service is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_ELASTICSEARCH_QUEUE_LIMIT

envvar

notify_elasticsearch queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_ELASTICSEARCH_COMMENT

envvar

notify_elasticsearch comment

mc-conf

Specify a comment to associate with the Elasticsearch configuration.

1.6.3 - Kafka Notification Settings

This page documents settings for configuring an Kafka service as a target for Bucket Notifications. See Publish Events to Kafka for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple Kafka Targets

You can specify multiple Kafka service endpoints by appending a unique identifier _ID for each set of related Kafka settings on to the top level key.

Examples

For example, the following commands set two distinct Kafka service endpoints as PRIMARY and SECONDARY respectively:

export MINIO_NOTIFY_KAFKA_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_KAFKA_BROKERS_PRIMARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"

export MINIO_NOTIFY_KAFKA_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_KAFKA_BROKERS_SECONDARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
mc admin config set notify_kafka:primary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

mc admin config set notify_kafka:secondary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

Notice that for configuration settings, the unique identifier appends to notify_kafka only, not to each individual argument.

Settings

Enable

Required

MINIO_NOTIFY_KAFKA_ENABLE

envvar

Specify on to enable publishing bucket notifications to a Kafka service endpoint.

Defaults to off.

notify_kafka

mc-conf

The top-level configuration key for defining an Kafka service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an Kafka service endpoint. The brokers argument is required for each target. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_kafka \
  brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
  [ARGUMENT="VALUE"] ... \

Brokers

Required

MINIO_NOTIFY_KAFKA_BROKERS

envvar

notify_kafka brokers

mc-conf

Specify a comma-separated list of Kafka broker addresses. For example:

"kafka1.example.com:2021,kafka2.example.com:2021"

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Topic

Optional

MINIO_NOTIFY_KAFKA_TOPIC

envvar

notify_kafka topic

mc-conf

Specify the name of the Kafka topic to which MinIO publishes bucket events.

SASL

Optional

MINIO_NOTIFY_KAFKA_SASL

envvar

notify_kafka sasl

mc-conf

Specify on to enable SASL authentication.

SASL Username

Optional

MINIO_NOTIFY_KAFKA_SASL_USERNAME

envvar

notify_kafka sasl_username

mc-conf

Specify the username for performing SASL/PLAIN or SASL/SCRAM authentication to the Kafka broker(s).

SASL Password

Optional

MINIO_NOTIFY_KAFKA_SASL_PASSWORD

envvar

notify_kafka sasl_password

mc-conf

Specify the password for performing SASL/PLAIN or SASL/SCRAM authentication to the Kafka broker(s).

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

SASL Mechanism

Optional

MINIO_NOTIFY_KAFKA_SASL_MECHANISM

envvar

notify_kafka sasl_mechanism

mc-conf

Specify the SASL mechanism to use for authenticating to the Kafka broker(s). MinIO supports the following mechanisms:

  • PLAIN (Default)
  • SHA256
  • SHA512

TLS Client Auth

Optional

MINIO_NOTIFY_KAFKA_TLS_CLIENT_AUTH

envvar

notify_kafka tls_client_auth

mc-conf

Specify the client authentication type of the Kafka broker(s). The following table lists the supported values and their mappings

Value Authentication Type
0 NoClientCert
1 RequestClientCert
2 RequireAnyClientCert
3 VerifyClientCertIfGiven
4 RequireAndVerifyClientCert

See ClientAuthType for more information on each client auth type.

TLS

Optional

MINIO_NOTIFY_KAFKA_TLS

envvar

notify_kafka tls

mc-conf

Specify on to enable TLS connectivity to the Kafka broker(s).

TLS Skip Verify

Optional

MINIO_NOTIFY_KAFKA_TLS_SKIP_VERIFY

envvar

notify_kafka tls_skip_verify

mc-conf

Enables or disables TLS verification of the NATS service endpoint TLS certificates.

  • Specify on to disable TLS verification (Default).
  • Specify off to enable TLS verification.

Client TLS Cert

Optional

MINIO_NOTIFY_KAFKA_CLIENT_TLS_CERT

envvar

notify_kafka client_tls_cert

mc-conf

Specify the path to the client certificate to use for performing mTLS authentication to the Kafka broker(s).

Client TLS Key

Optional

MINIO_NOTIFY_KAFKA_CLIENT_TLS_KEY

envvar

notify_kafka client_tls_key

mc-conf

Specify the path to the client private key to use for performing mTLS authentication to the Kafka broker(s).

Version

Optional

MINIO_NOTIFY_KAFKA_VERSION

envvar

notify_kafka version

mc-conf

Specify the version of the Kafka cluster to assume when performing operations against that cluster. See the sarama reference documentation for more information on this field’s behavior.

Batch Size

Optional

MINIO_NOTIFY_KAFKA_BATCH_SIZE

envvar

notify_kafka batch_size

mc-conf

Specify the integer value to use as the batch size for sending records to Kafka.

Note

Changed: RELEASE.2023-12-02T10-51-33Z

MinIO previously limited this value to 100.

Queue Directory

Optional

MINIO_NOTIFY_KAFKA_QUEUE_DIR

envvar

notify_kafka queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the Kafka server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_KAFKA_QUEUE_LIMIT

envvar

notify_kafka queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_KAFKA_COMMENT

envvar

notify_kafka comment

mc-conf

Specify a comment to associate with the Kafka configuration.

Compression Codec

Note

Added: MinIO

Server RELEASE.2023-12-09T18-17-51Z

Optional

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_CODEC

envvar

notify_kafka compression_codec

mc-conf

Specify the compression codec to use when sending records to Kafka.

Supports the following values:

  • none
  • snappy
  • gzip
  • lz4
  • zstd

Compression Level

Note

Added: MinIO

Server RELEASE.2023-12-09T18-17-51Z

Optional

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_LEVEL

envvar

notify_kafka compression_level

mc-conf

Controls the level of compression applied based on the configured compression codec.

Specify an integer value greater than or equal to 0. The effect of the value depends on the selected codec.

1.6.4 - MQTT Notification Settings

This page documents settings for configuring an MQTT service as a target for Bucket Notifications. See Publish Events to MQTT for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple MQTT Targets

You can specify multiple MQTT service endpoints by appending a unique identifier _ID for each set of related MQTT settings to the top level key. For example, the following commands set two distinct MQTT service endpoints as PRIMARY and SECONDARY, respectively:

Environment Variables
export MINIO_NOTIFY_MQTT_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_MQTT_BROKER_PRIMARY="tcp://user:password@mqtt-endpoint.example.net:1883"

export MINIO_NOTIFY_MQTT_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_MQTT_BROKER_SECONDARY="tcp://user:password@mqtt-endpoint.example.net:1883"
Configuration Setting
mc admin config set notify_mqtt:primary \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

mc admin config set notify_mqtt:secondary \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

With these settings, MINIO_NOTIFY_MQTT_ENABLE_PRIMARY indicates the environment variable is associated to an MQTT service endpoint with an ID of PRIMARY.

Settings

Enable

Required

MINIO_NOTIFY_MQTT_ENABLE

envvar

Specify on to enable publishing bucket notifications to an MQTT endpoint.

Defaults to off.

notify_mqtt

mc-conf

The top-level configuration key for defining an MQTT server/broker endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an MQTT server/broker endpoint. The following arguments are required for each endpoint:

  • broker
  • topic
  • username Optional if MQTT server/broker does not enforce authentication/authorization
  • password Optional if MQTT server/broker does not enforce authentication/authorization

Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_mqtt \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

Broker

Required

MINIO_NOTIFY_MQTT_BROKER

envvar

notify_mqtt broker

mc-conf

Specify the MQTT server/broker endpoint. MinIO supports TCP, TLS, or Websocket connections to the server/broker URL. For example:

  • tcp://mqtt.example.net:1883
  • tls://mqtt.example.net:1883
  • ws://mqtt.example.net:1883
Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Topic

Required

MINIO_NOTIFY_MQTT_TOPIC

envvar

notify_mqtt topic

mc-conf

Specify the name of the MQTT topic to associate with events published by MinIO to the MQTT endpoint.

Username

Required if the MQTT server/broker enforces authentication/authorization

MINIO_NOTIFY_MQTT_USERNAME

envvar

notify_mqtt username

mc-conf

Specify the MQTT username MinIO should use to authenticate to the MQTT server/broker.

Password

Required if the MQTT server/broker enforces authentication/authorization

MINIO_NOTIFY_MQTT_PASSWORD

envvar

notify_mqtt password

mc-conf

Specify the password for the MQTT username MinIO uses to authenticate to the MQTT server/broker.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

Quality of Service

Optional

MINIO_NOTIFY_MQTT_QOS

envvar

notify_mqtt qos

mc-conf

Specify the Quality of Service priority for the published events.

Defaults to 0.

Keep Alive Interval

Optional

MINIO_NOTIFY_MQTT_KEEP_ALIVE_INTERVAL

envvar

notify_mqtt keep_alive_interval

mc-conf

Specify the keep-alive interval for the MQTT connections. MinIO supports the following units of time measurement:

  • s - seconds, “60s”
  • m - minutes, “60m”
  • h - hours, “24h”
  • d - days, “7d”

Reconnect Interval

Optional

MINIO_NOTIFY_MQTT_RECONNECT_INTERVAL

envvar

notify_mqtt reconnect_interval

mc-conf

Specify the reconnect interval for the MQTT connections. MinIO supports the following units of time measurement:

  • s - seconds, “60s”
  • m - minutes, “60m”
  • h - hours, “24h”
  • d - days, “7d”

Queue Directory

Optional

MINIO_NOTIFY_MQTT_QUEUE_DIR

envvar

notify_mqtt queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the MQTT server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_MQTT_QUEUE_LIMIT

envvar

notify_mqtt queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_MQTT_COMMENT

envvar

notify_mqtt comment

mc-conf

Specify a comment to associate with the MQTT configuration.

1.6.5 - MySQL Notification Settings

This page documents settings for configuring a MYSQL service as a target for Bucket Notifications. See Publish Events to MySQL for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple MYSQL Targets

You can specify multiple MySQL service endpoints by appending a unique identifier _ID for each set of related MySQL settings on to the top level key.

Examples

The following commands set two distinct MySQL service endpoints as PRIMARY and SECONDARY respectively:

export MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_MYSQL_DSN_STRING_PRIMARY="username:password@tcp(mysql.example.com:3306)/miniodb"
export MINIO_NOTIFY_MYSQL_TABLE_PRIMARY="minioevents"
export MINIO_NOTIFY_MYSQL_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_MYSQL_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_MYSQL_DSN_STRING_SECONDARY="username:password@tcp(mysql.example.com:3306)/miniodb"
export MINIO_NOTIFY_MYSQL_TABLE_SECONDARY="minioevents"
export MINIO_NOTIFY_MYSQL_FORMAT_SECONDARY="namespace"

With these settings, MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY indicates the environment variable is associated to a MySQL service endpoint with ID of PRIMARY.

mc admin config set notify_mysql:primary \
   dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_mysql:secondary \
   dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

Settings

Enable

Required

MINIO_NOTIFY_MYSQL_ENABLE

envvar

Specify on to enable publishing bucket notifications to a MySQL service endpoint.

Defaults to off.

Requires specifying the following additional environment variables if set to on:

notify_mysql

mc-conf

The top-level configuration key for defining an MySQL service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an MySQL service endpoint. The following arguments are required for each target:

Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_mysql \
  dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
  table="minioevents" \
  format="namespace" \
  [ARGUMENT="VALUE"] ... \

Data Source Name (DSN) String

Required

MINIO_NOTIFY_MYSQL_DSN_STRING

envvar

notify_mysql dsn_string

mc-conf

Specify the data source name (DSN) of the MySQL service endpoint. MinIO expects the following format:

<user>:<password>@tcp(<host>:<port>)/<database>

For example:

"username:password@tcp(mysql.example.com:3306)/miniodb"

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Table

Required

MINIO_NOTIFY_MYSQL_TABLE

envvar

notify_mysql table

mc-conf

Specify the name of the MySQL table to which MinIO publishes event notifications.

Format

Required

MINIO_NOTIFY_MYSQL_FORMAT

envvar

notify_mysql format

mc-conf

Specify the format of event data written to the MySQL service endpoint. MinIO supports the following values:

namespace

For each bucket event, MinIO creates a JSON document with the bucket and object name from the event as the document ID and the actual event as part of the document body. Additional updates to that object modify the existing table entry for that object. Similarly, deleting the object also deletes the corresponding table entry.

access

For each bucket event, MinIO creates a JSON document with the event details and appends it to the table with a MySQL-generated random ID. Additional updates to an object result in new index entries, and existing entries remain unmodified.

Max Open Connections

Optional

MINIO_NOTIFY_MYSQL_MAX_OPEN_CONNECTIONS

envvar

notify_mysql max_open_connections

mc-conf

Specify the maximum number of open connections to the MySQL database.

Defaults to 2.

Queue Directory

Optional

MINIO_NOTIFY_MYSQL_QUEUE_DIR

envvar

notify_mysql queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the MySQL server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_MYSQL_QUEUE_LIMIT

envvar

notify_mysql queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_MYSQL_COMMENT

envvar

notify_mysql comment

mc-conf

Specify a comment to associate with the MySQL configuration.

1.6.6 - NATS Notification Settings

Note

NATS Streaming Deprecated

NATS Streaming is deprecated. Migrate to JetStream instead.

The related MinIO configuration options and environment variables are deprecated.

This page documents settings for configuring an NATS service as a target for Bucket Notifications. See Publish Events to NATS for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple NATS Targets

You can specify multiple NATS service endpoints by appending a unique identifier _ID for each set of related NATS settings on to the top level key.

Example

For example, the following commands set two distinct NATS service endpoints as PRIMARY and SECONDARY respectively:

export MINIO_NOTIFY_NATS_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_NATS_ADDRESS_PRIMARY="nats-endpoint.example.net:4222"

export MINIO_NOTIFY_NATS_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_NATS_ADDRESS_SECONDARY="nats-endpoint.example.net:4222"

With these settings, MINIO_NOTIFY_NATS_ENABLE_PRIMARY indicates the environment variable is associated to an NATS service endpoint with ID of PRIMARY.

mc admin config set notify_nats:primary \
   address="nats-endpoint.example.com:4222" \
   subject="minioevents" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_nats:secondary \
   address="nats-endpoint.example.com:4222" \
   subject="minioevents" \
   [ARGUMENT=VALUE ...]

Settings

Enable

Required

MINIO_NOTIFY_NATS_ENABLE

envvar

Specify on to enable publishing bucket notifications to an NATS service endpoint.

Defaults to off.

notify_nats

mc-conf

The top-level configuration key for defining an NATS service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an NATS service endpoint. The address and subject arguments are required for each target. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_nats \
  address="nats-endpoint.example.com:4222" \
  subject="minioevents" \
  [ARGUMENT="VALUE"] ... \

Address

Required

MINIO_NOTIFY_NATS_ADDRESS

envvar

notify_nats address

mc-conf

Specify the NATS service endpoint to which MinIO publishes bucket events. For example, nats-endpoint.example.com:4222.

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Subject

Required

MINIO_NOTIFY_NATS_SUBJECT

envvar

notify_nats subject

mc-conf

Specify the subscription to which MinIO associates events published to the NATS endpoint.

Username

Optional

MINIO_NOTIFY_NATS_USERNAME

envvar

notify_nats username

mc-conf

Specify the username for connecting to the NATS service endpoint.

Password

Optional

MINIO_NOTIFY_NATS_PASSWORD

envvar

notify_nats password

mc-conf

Specify the passport for connecting to the NATS service endpoint.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

Token

Optional

MINIO_NOTIFY_NATS_TOKEN

envvar

notify_nats token

mc-conf

Specify the token for connecting to the NATS service endpoint.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

User Credentials File

Optional

MINIO_NOTIFY_NATS_USER_CREDENTIALS

envvar

notify_nats user_credentials

mc-conf

Specify the user credentials file to use to connect to the NATS service endpoint.

TLS

Optional

MINIO_NOTIFY_NATS_TLS

envvar

notify_nats tls

mc-conf

Specify on to enable TLS connectivity to the NATS service endpoint.

TLS Skip Verify

Optional

MINIO_NOTIFY_NATS_TLS_SKIP_VERIFY

envvar

notify_nats tls_skip_verify

mc-conf

Enables or disables TLS verification of the NATS service endpoint TLS certificates.

  • Specify on to disable TLS verification (Default).
  • Specify off to enable TLS verification.

Ping Interval

Optional

MINIO_NOTIFY_NATS_PING_INTERVAL

envvar

notify_nats ping_interval

mc-conf

Specify the duration interval for client pings to the NATS server. MinIO supports the following time units:

  • s - seconds, "60s"
  • m - minutes, "5m"
  • h - hours, "1h"
  • d - days, "1d"

Jetstream

Optional

MINIO_NOTIFY_NATS_JETSTREAM

envvar

notify_nats jetstream

mc-conf

Specify on to enable JetStream support for streaming events to a NATS JetStream service endpoint.

Streaming

Deprecated

Optional

MINIO_NOTIFY_NATS_STREAMING

envvar

notify_nats streaming

mc-conf

Specify on to enable asynchronous publishing of events to the NATS service endpoint.

Streaming Async

Deprecated

Optional

MINIO_NOTIFY_NATS_STREAMING_ASYNC

envvar

notify_nats streaming_async

mc-conf

Specify on to enable asynchronous publishing of events to the NATS service endpoint.

Max ACK Responses In Flight

Deprecated

Optional

MINIO_NOTIFY_NATS_STREAMING_MAX_PUB_ACKS_IN_FLIGHT

envvar

notify_nats streaming_max_pub_acks_in_flight

mc-conf

Specify the number of messages to publish without waiting for an ACK response from the NATS service endpoint.

Streaming Cluster ID

Deprecated

Optional

MINIO_NOTIFY_NATS_STREAMING_CLUSTER_ID

envvar

notify_nats streaming_cluster_id

mc-conf

Specify the unique ID for the NATS streaming cluster.

Cert Authority

Optional

MINIO_NOTIFY_NATS_CERT_AUTHORITY

envvar

notify_nats cert_authority

mc-conf

Specify the path to the Certificate Authority chain used to sign the NATS service endpoint TLS certificates.

Client Cert

Optional

MINIO_NOTIFY_NATS_CLIENT_CERT

envvar

notify_nats client_cert

mc-conf

Specify the path to the client certificate to use for performing mTLS authentication to the NATS service endpoint.

Client Key

Optional

MINIO_NOTIFY_NATS_CLIENT_KEY

envvar

notify_nats client_key

mc-conf

Specify the path to the client private key to use for performing mTLS authentication to the NATS service endpoint.

Queue Directory

Optional

MINIO_NOTIFY_NATS_QUEUE_DIR

envvar

notify_nats queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the NATS server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_NATS_QUEUE_LIMIT

envvar

notify_nats queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_NATS_COMMENT

envvar

notify_nats comment

mc-conf

Specify a comment to associate with the NATS configuration.

1.6.7 - NSQ Notification Settings

This page documents settings for configuring an NSQ service as a target for Bucket Notifications. See Publish Events to NSQ for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple NSQ Targets

You can specify multiple NSQ service endpoints by appending a unique identifier _ID to the end of the top level key for each set of related NSQ settings. For example, the following commands set two distinct NSQ service endpoints as PRIMARY and SECONDARY respectively:

Environment Variables
export MINIO_NOTIFY_NSQ_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_NSQ_NSQD_ADDRESS_PRIMARY="https://user:password@nsq-endpoint.example.net:9200"
export MINIO_NOTIFY_NSQ_TOPIC_PRIMARY="bucketevents"

export MINIO_NOTIFY_NSQ_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_NSQ_NSQD_ADDRESS_SECONDARY="https://user:password@nsq-endpoint.example.net:9200"
export MINIO_NOTIFY_NSQ_TOPIC_SECONDARY="bucketevents"
Configuration Settings
mc admin config set notify_nsq:primary \
   nsqd_address="ENDPOINT" \
   topic="<string>" \
   [ARGUMENT="VALUE"] ... \

mc admin config set notify_nsq:secondary \
   nsqd_address="ENDPOINT" \
   topic="<string>" \
   [ARGUMENT="VALUE"] ... \

Settings

Enable

Required

MINIO_NOTIFY_NSQ_ENABLE

envvar

Specify on to enable publishing bucket notifications to an NSQ endpoint.

notify_nsq

mc-conf

The top-level configuration key for defining an NSQ server/broker endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an NSQ server/broker endpoint. The following arguments are required for each endpoint:

Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_nsq                          \
   nsqd_address="https://nsq-endpoint.example.net:4150" \
   topic="<string>"                                     \
   [ARGUMENT="VALUE"] ...

NSQ Daemon Server Address

Required

MINIO_NOTIFY_NSQ_NSQD_ADDRESS

envvar

notify_nsq nsqd_address

mc-conf

Specify the NSQ server address where the NSQ Daemon runs. For example:

https://nsq-endpoint.example.net:4150

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Topic

Required

MINIO_NOTIFY_NSQ_TOPIC

envvar

notify_nsq topic

mc-conf

Specify the name of the NSQ topic MinIO uses when publishing events to the broker.

TLS

Optional

MINIO_NOTIFY_NSQ_TLS

envvar

notify_nsq tls

mc-conf

Specify on to enable TLS connectivity to the NSQ service broker.

TLS Skip Verify

Optional

MINIO_NOTIFY_NSQ_TLS_SKIP_VERIFY

envvar

notify_nsq tls_skip_verify

mc-conf

Enables or disables TLS verification of the NSQ service broker TLS certificates.

  • Specify on to disable TLS verification (Default).
  • Specify off to enable TLS verification.

Queue Directory

Optional

MINIO_NOTIFY_NSQ_QUEUE_DIR

envvar

notify_nsq queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the NSQ server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_NSQ_QUEUE_LIMIT

envvar

notify_nsq queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_NSQ_COMMENT

envvar

notify_nsq comment

mc-conf

Specify a comment to associate with the NSQ configuration.

1.6.8 - PostgreSQL Notification Settings

This page documents settings for configuring an POSTGRES service as a target for Bucket Notifications. See Publish Events to PostgreSQL for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple PostgreSQL Targets

You can specify multiple PostgreSQL service endpoints by appending a unique identifier _ID for each set of related PostgreSQL settings on to the top level key. For example, the following commands set two distinct PostgreSQL service endpoints as PRIMARY and SECONDARY respectively:

Environment Variables
export MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_PRIMARY="host=postgresql-endpoint.example.net port=4222..."
export MINIO_NOTIFY_POSTGRES_TABLE_PRIMARY="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_POSTGRES_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_SECONDARY="host=postgresql-endpoint.example.net port=4222..."
export MINIO_NOTIFY_POSTGRES_TABLE_SECONDARY="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_SECONDARY="namespace"
Configuration Settings
mc admin config set notify_postgres:primary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_postgres:secondary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

With these settings, MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY indicates the environment variable is associated to an PostgreSQL service endpoint with ID of PRIMARY.

Settings

Enable

Required

MINIO_NOTIFY_POSTGRES_ENABLE

envvar

Specify on to enable publishing bucket notifications to a PostgreSQL service endpoint.

Defaults to off.

Requires specifying the following additional environment variables if set to on:

notify_postgres

mc-conf

The top-level configuration key for defining an PostgreSQL service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an PostgreSQL service endpoint. The following arguments are required for each target:

Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_postgres                            \
  connection_string="host=postgresql.example.com port=5432..." \
  table="minioevents"                                          \
  format="namespace"                                           \
  [ARGUMENT="VALUE"] ...

Connection String

Required

MINIO_NOTIFY_POSTGRES_CONNECTION_STRING

envvar

notify_postgres connection_string

mc-conf

Specify the URI connection string of the PostgreSQL service endpoint. MinIO supports key=value format for the PostgreSQL connection string. For example:

"host=https://postgresql.example.com port=5432 ..."

For more complete documentation on supported PostgreSQL connection string parameters, see the PostgreSQL Connection Strings documentation.

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Table

Required

MINIO_NOTIFY_POSTGRES_TABLE

envvar

notify_postgres table

mc-conf

Specify the name of the PostgreSQL table to which MinIO publishes event notifications.

Format

Required

MINIO_NOTIFY_POSTGRES_FORMAT

envvar

notify_postgres format

mc-conf

Specify the format of event data written to the PostgreSQL service endpoint. MinIO supports the following values:

namespace

For each bucket event, MinIO creates a JSON document with the bucket and object name from the event as the document ID and the actual event as part of the document body. Additional updates to that object modify the existing table entry for that object. Similarly, deleting the object also deletes the corresponding table entry.

access

For each bucket event, MinIO creates a JSON document with the event details and appends it to the table with a PostgreSQL-generated random ID. Additional updates to an object result in new index entries, and existing entries remain unmodified.

Max Open Connections

Optional

MINIO_NOTIFY_POSTGRES_MAX_OPEN_CONNECTIONS

envvar

notify_postgres max_open_connections

mc-conf

Specify the maximum number of open connections to the PostgreSQL database.

Defaults to 2.

Queue Directory

Optional

MINIO_NOTIFY_POSTGRES_QUEUE_DIR

envvar

notify_postgres queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the PostgreSQL server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT

envvar

notify_postgres queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_POSTGRES_COMMENT

envvar

notify_postgres comment

mc-conf

Specify a comment to associate with the PostgreSQL configuration.

1.6.9 - Redis Notification Settings

This page documents settings for configuring a Redis service as a target for Bucket Notifications. See Publish Events to Redis for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple Redis Targets

You can specify multiple Redis service endpoints by appending a unique identifier _ID to the end of the top level key for each set of related Redis settings. For example, the following commands set two distinct Redis service endpoints as PRIMARY and SECONDARY respectively:

Environment Variables
export MINIO_NOTIFY_REDIS_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_REDIS_ADDRESS_PRIMARY="redis-endpoint.example.net:9200"
export MINIO_NOTIFY_REDIS_KEY_PRIMARY="bucketevents"
export MINIO_NOTIFY_REDIS_FORMAT_PRIMARY="namespace"


export MINIO_NOTIFY_REDIS_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_REDIS_REDIS_ADDRESS_SECONDARY="redis-endpoint2.example.net:9200"
export MINIO_NOTIFY_REDIS_KEY_SECONDARY="bucketevents"
export MINIO_NOTIFY_REDIS_FORMAT_SECONDARY="namespace"
Configuration Settings
mc admin config set notify_redis:primary              \
   address="redis-endpoint.example.net:9200"  \
   key="bucketevents"                                 \
   format="namespace"                                 \
   [ARGUMENT="VALUE"] ...                             \

mc admin config set notify_redis:secondary            \
   address="redis-endpoint2.example.net:9200" \
   key="bucketevents"                                 \
   format="namespace"                                 \
   [ARGUMENT="VALUE"] ...

Settings

Enable

Required

MINIO_NOTIFY_REDIS_ENABLE

envvar

Specify on to enable publishing bucket notifications to a Redis service endpoint.

Defaults to off.

Requires specifying the following additional environment variables if set to on:

notify_redis

mc-conf

The top-level configuration key for defining an Redis server/broker endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an Redis server/broker endpoint. The following arguments are required for each endpoint:

Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_redis \
   address="ENDPOINT" \
   key="<string>" \
   format="<string>" \
   [ARGUMENT="VALUE"] ... \

Address

Required

MINIO_NOTIFY_REDIS_ADDRESS

envvar

notify_redis address

mc-conf

Specify the Redis service endpoint to which MinIO publishes bucket events. For example, redis.example.com:6369.

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Key

Required

MINIO_NOTIFY_REDIS_KEY

envvar

notify_redis key

mc-conf

Specify the Redis key to use for storing and updating events. Redis auto-creates the key if it does not exist.

Format

Required

MINIO_NOTIFY_REDIS_FORMAT

envvar

notify_redis format

mc-conf

Specify the format of event data written to the Redis service endpoint. MinIO supports the following values:

namespace

For each bucket event, MinIO creates a JSON document with the bucket and object name from the event as the document ID and the actual event as part of the document body. Additional updates to that object modify the existing index entry for that object. Similarly, deleting the object also deletes the corresponding index entry.

access

For each bucket event, MinIO creates a JSON document with the event details and appends it to the key with a Redis-generated random ID. Additional updates to an object result in new index entries, and existing entries remain unmodified.

Password

Optional

MINIO_NOTIFY_REDIS_PASSWORD

envvar

notify_redis password

mc-conf

Specify the password for the Redis server.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

User

Optional

Note

Added: RELEASE.2024-03-21T23-13-43Z

MINIO_NOTIFY_REDIS_USER

envvar

notify_redis user

mc-conf

Specify the user for the Redis server.

Queue Directory

Optional

MINIO_NOTIFY_REDIS_QUEUE_DIR

envvar

notify_redis queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the Redis server/broker is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_REDIS_QUEUE_LIMIT

envvar

notify_redis queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Comment

Optional

MINIO_NOTIFY_REDIS_COMMENT

envvar

notify_redis comment

mc-conf

Specify a comment to associate with the Redis configuration.

1.6.10 - Webhook Service Notification Settings

This page documents settings for configuring an Webhook service as a target for Bucket Notifications. See Publish Events to Webhook for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Multiple Webhook Service Targets

You can specify multiple Webhook service endpoints by appending a unique identifier _ID for each set of related Webhook settings on to the top level key. For example, the following commands set two distinct Webhook service endpoints as PRIMARY and SECONDARY respectively:

Environment Variables
export MINIO_NOTIFY_WEBHOOK_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_WEBHOOK_ENDPOINT_PRIMARY="https://webhook1.example.net"

export MINIO_NOTIFY_WEBHOOK_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_WEBHOOK_ENDPOINT_SECONDARY="https://webhook1.example.net"
Configuration Settings
mc admin config set notify_webhook:primary \
   endpoint="https://webhook1.example.net"
   [ARGUMENT=VALUE ...]

mc admin config set notify_webhook:secondary \
   endpoint="https://webhook2.example.net
   [ARGUMENT=VALUE ...]

Settings

Enable

Required

MINIO_NOTIFY_WEBHOOK_ENABLE

envvar

Specify on to enable publishing bucket notifications to a Webhook service endpoint.

Defaults to off.

notify_webhook

mc-conf

The top-level configuration key for defining an Webhook service endpoint for use with MinIO bucket notifications.

Use mc admin config set to set or update an Webhook service endpoint. The endpoint argument is required for each target. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set notify_webhook \
  endpoint="https://webhook.example.net"
  [ARGUMENT="VALUE"] ... \

Endpoint

Required

MINIO_NOTIFY_WEBHOOK_ENDPOINT

envvar

notify_webhook endpoint

mc-conf

Specify the URL for the webhook service.

Note

Changed: RELEASE.2023-05-27T05-56-19Z

MinIO checks the health of the specified URL (if it is resolvable and reachable) prior to adding the target. MinIO no longer blocks adding new notification targets if existing targets are offline.

Auth Token

Required

MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN

envvar

An authentication token of the appropriate type for the endpoint. Omit for endpoints which do not require authentication.

To allow for a variety of token types, MinIO creates the request authentication header using the value exactly as specified. Depending on the endpoint, you may need to include additional information.

For example, for a Bearer token, prepend Bearer:

export MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"

Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:

export MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"

Consult the documentation for the desired service for more details.

notify_webhook auth_token

mc-conf

An authentication token of the appropriate type for the endpoint. Omit for endpoints which do not require authentication.

To allow for a variety of token types, MinIO creates the request authentication header using the value exactly as specified. Depending on the endpoint, you may need to include additional information.

For example, for a Bearer token, prepend Bearer:

   mc admin config set myminio notify_webhook   \
   endpoint="https://webhook-1.example.net"  \
      auth_token="Bearer 1a2b3c4f5e"

Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:

   mc admin config set myminio notify_webhook   \
      endpoint="https://webhook-1.example.net"  \
      auth_token="ServiceXYZ 1a2b3c4f5e"

Consult the documentation for the desired service for more details.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

Queue Directory

Optional

MINIO_NOTIFY_WEBHOOK_QUEUE_DIR

envvar

notify_webhook queue_dir

mc-conf

Specify the directory path to enable MinIO’s persistent event store for undelivered messages, such as /opt/minio/events.

MinIO stores undelivered events in the specified store while the webhook service is offline and replays the stored events when connectivity resumes.

Queue Limit

Optional

MINIO_NOTIFY_WEBHOOK_QUEUE_LIMIT

envvar

notify_webhook queue_limit

mc-conf

Specify the maximum limit for undelivered messages. Defaults to 100000.

Client Certificate

Optional

MINIO_NOTIFY_WEBHOOK_CLIENT_CERT

envvar

notify_webhook client_cert

mc-conf

Specify the path to the client certificate to use for performing mTLS authentication to the webhook service.

Client Key

Optional

MINIO_NOTIFY_WEBHOOK_CLIENT_KEY

envvar

notify_webhook client_key

mc-conf

Specify the path to the client private key to use for performing mTLS authentication to the webhook service.

1.7 - Identity and Access Management Settings

The pages in this section document settings for configuring MinIO to work with identity and access management (IAM) solutions. There is a page of settings for each of the IAM methods MinIO supports.

1.7.1 - Active Directory / LDAP Settings

This page documents settings for enabling external identity management using an Active Directory or LDAP service. See Configure MinIO for Authentication using Active Directory / LDAP for a tutorial on using these settings.

Warning

Important

New in version RELEASE.2023-05-26T23-31-54Z:

mc idp ldap commands are preferred over using configuration settings to configure MinIO to use Active Directory or LDAP for identity management.

MinIO recommends using the mc idp ldap commands for LDAP management operations. These commands offer better validation and additional features, while providing the same settings as the identity_ldap configuration key. See Configure MinIO for Authentication using Active Directory / LDAP for a tutorial on using mc idp ldap.

The identity_ldap configuration settings remains available for existing scripts and other tools.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Examples

MINIO_IDENTITY_LDAP_SERVER_ADDR="ldapserver.com:636"
Note

Note

srv_record_name automatically identifies the port.

If your AD/LDAP server uses DNS SRV Records, do not append the port number to your server_addr value. SRV requests automatically include port numbers when returning the list of available servers.

identity_ldap

mc-conf

The following settings are required when defining LDAP using mc admin config set:

  • enabled
  • server_addr
  • lookup_bind_dn
  • lookup_bind_dn_password
  • user_dn_search_base_dn
  • user_dn_search_filter
mc admin config set identity_ldap                        \
   enabled="true"                                        \
   server_addr="ad-ldap.example.net/"                    \
   lookup_bind_dn="cn=miniolookupuser,dc=example,dc=net" \
   lookup_bind_dn_password="userpassword"                \
   user_dn_search_base_dn="dc=example,dc=net"            \
   user_dn_search_filter="(&(objectCategory=user)(sAMAccountName=%s))"

Settings

Server Address

Required

MINIO_IDENTITY_LDAP_SERVER_ADDR

envvar

Specify the hostname for the Active Directory / LDAP server. For example:

ldapserver.com:636
Note

srv_record_name automatically identifies the port

If your AD/LDAP server uses DNS SRV Records, do not append the port number to your server_addr value. SRV requests automatically include port numbers when returning the list of available servers.

identity_ldap server_addr

mc-conf

Specify the hostname for the Active Directory / LDAP server. For example:

ldapserver.com:636
Note

srv_record_name automatically identifies the port

If your AD/LDAP server uses DNS SRV Records, do not append the port number to your server_addr value. SRV requests automatically include port numbers when returning the list of available servers.

Lookup Bind DN

Required

MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN

envvar

identity_ldap lookup_bind_dn

mc-conf

Specify the Distinguished Name (DN) for an AD/LDAP account MinIO uses when querying the AD/LDAP server. Enables Lookup-Bind authentication to the AD/LDAP server.

The DN account should be a read-only access keys with sufficient privileges to support querying performing user and group lookups.

Lookup Bind Password

Required

MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD

envvar

identity_ldap lookup_bind_password

mc-conf

Specify the password for the Lookup-Bind user account.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

User DN Search Base DN

Required

MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN

envvar

identity_ldap user_dn_search_base_dn

mc-conf

Specify the base Distinguished Name (DN) MinIO uses when querying for user credentials matching those provided by an authenticating client.

Separate multiple DNs with a semicolon (;).

For example:

cn=miniousers,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

Supports Lookup-Bind mode.

User DN Search Filter

Required

MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER

envvar

identity_ldap user_dn_search_filter

mc-conf

Specify the AD/LDAP search filter MinIO uses when querying for user credentials matching those provided by an authenticating client.

Use the %s substitution character to insert the client-specified username into the search string. For example:

(userPrincipalName=%s)

User DN Attributes

Optional

MINIO_IDENTITY_LDAP_USER_DN_ATTRIBUTES

envvar

identity_ldap user_dn_attributes

mc-conf

Note

Added: RELEASE.2024-06-06T09-36-42Z

Comma-separated list of user DN attributes.

Some valid values include, uid,cn,mail,sshPublicKey.

To enable public authentication for LDAP users, pass sshPublicKey as a DN attribute. The user can then use the passed SSH Public Key to log in to SFTP servers.

mc idp ldap update ALIAS user_dn_attributes=sshPublicKey

Enabled

Optional

This setting does not have an environment variable option. Use the configuration setting instead.

identity_ldap enabled

mc-conf

Set to false to disable the AD/LDAP configuration.

If false, applications cannot generate STS credentials or otherwise authenticate to MinIO using the configured provider.

Defaults to true or “enabled”.

Group Search Filter

Optional

MINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER

envvar

identity_ldap group_search_filter

mc-conf

Specify an AD/LDAP search filter for performing group lookups for the authenticated user

Use the %s substitution character to insert the client-specified username into the search string. Use the %d substitution character to insert the Distinguished Name of the client-specified username into the search string.

For example:

(&(objectclass=groupOfNames)(memberUid=%s))

When providing an AD/LDAP group search filter, configure a filter that returns the minimum number of relevant groups for the purpose of supporting authentication. Filters that return large group assignments increase the size of associated calls and resources. Functions sensitive to large request or response bodies may exhibit unexpected behaviors as a result.

When providing an AD/LDAP group search filter, configure a filter that returns the minimum number of relevant groups for the purpose of supporting authentication. Filters that return large group assignments increase the size of associated calls and resources. Functions sensitive to large request or response bodies may exhibit unexpected behaviors as a result.

Group Search Base DN

Optional

MINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN

envvar

identity_ldap group_search_base_dn

mc-conf

Specify a semicolon-separated (;) list of group search base Distinguished Names MinIO uses when performing group lookups.

For example:

cn=miniogroups,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

TLS Skip Verify

Optional

MINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY

envvar

identity_ldap tls_skip_verify

mc-conf

Specify on to trust the AD/LDAP server TLS certificates without verification. This option may be required if the AD/LDAP server TLS certificates are signed by an untrusted Certificate Authority (e.g. self-signed).

Defaults to off

Server Insecure

Optional

MINIO_IDENTITY_LDAP_SERVER_INSECURE

envvar

identity_ldap server_insecure

mc-conf

Specify on to allow unsecured (non-TLS encrypted) connections to the AD/LDAP server.

MinIO sends AD/LDAP user credentials in plain text to the AD/LDAP server, such that enabling TLS is required to prevent reading credentials over the wire. Using this option presents a security risk where any user with access to network traffic can observe the unencrypted plaintext credentials.

Defaults to off.

Server Start TLS

Optional

MINIO_IDENTITY_LDAP_SERVER_STARTTLS

envvar

identity_ldap server_starttls

mc-conf

Specify on to enable StartTLS connections to an AD/LDAP server.

Defaults to off

For more about StartTLS, refer to section 4.14 of the LDAP RFC 4511 specification.

SRV Record Name

Optional

Note

Added: RELEASE.2022-12-12T19-27-27Z

MINIO_IDENTITY_LDAP_SRV_RECORD_NAME

envvar

identity_ldap srv_record_name

mc-conf

Specify the appropriate value to enable MinIO to select an AD/LDAP server using a DNS SRV record request.

When enabled, MinIO selects an AD/LDAP server by:

  • Constructing the target SRV record name following standard naming conventions.
  • Requesting a list of available AD/LDAP servers.
  • Choosing an appropriate target based on priority and weight.

The configuration examples below presume the AD/LDAP server address is set to example.com and the SRV record protocol is _tcp.

For SRV record names beginning with _ldap, specify ldap. The constructed DNS SRV record name resembles the following:

_ldap._tcp.example.com

For SRV record names with beginning with _ldaps, specify ldaps. The constructed DNS SRV record name resembles the following:

_ldaps._tcp.example.com

If your DNS SRV record name uses alternate service or protocol names, specify on and provide the full record name as your LDAP server address. Example: _ldapserver._specialtcp.example.com

For more about DNS SRV records, see DNS SRV Records for LDAP.

Note

Server address for DNS SRV record configurations

The specified server name must not include a port number. This is different from a standard AD/LDAP configuration, where the port number is required.

See server_addr or MINIO_IDENTITY_LDAP_SERVER_ADDR for more about configuring an AD/LDAP server address.

Comment

Optional

MINIO_IDENTITY_LDAP_COMMENT

envvar

identity_ldap identity_ldap comment

mc-conf

Specify a comment to associate to the AD/LDAP configuration.

1.7.2 - OpenID Identity Management Settings

This page documents settings for enabling external identity management using an OpenID Connect (OIDC)-compatible provider. See OpenID Connect Access Management for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Examples

MINIO_IDENTITY_OPENID_CONFIG_URL="https://openid-provider.example.net/.well-known/openid-configuration"

identity_openid

mc-conf

Use mc admin config set to set or update the OpenID configuration. The config_url argument is required. Specify additional optional arguments as a whitespace (" ")-delimited list.

mc admin config set identity_openid                                               \
  config_url="https://openid-provider.example.net/.well-known/openid-configuration" \
  [ARGUMENT="VALUE"] ...

Settings

Config URL

Required

MINIO_IDENTITY_OPENID_CONFIG_URL

envvar

identity_openid config_url

mc-conf

Specify the URL for the OIDC compatible provider discovery document.

The OIDC Discovery URL typically resembles the following:

https://openid-provider.example.net/.well-known/openid-configuration

Enabled

Optional

This setting does not have an environment variable option. Use the Configuration Setting instead.

identity_openid enabled

mc-conf

Set to false to disable the OpenID configuration.

Applications cannot generate STS credentials or otherwise authenticate to MinIO using the configured provider if set to false.

Defaults to true or “enabled”.

Client ID

Optional

MINIO_IDENTITY_OPENID_CLIENT_ID

envvar

identity_openid client_id

mc-conf

Specify the unique public identifier MinIO uses when authenticating user credentials against the OIDC compatible provider.

Client Secret

Optional

MINIO_IDENTITY_OPENID_CLIENT_SECRET

envvar

identity_openid client_secret

mc-conf

Specify the client secret MinIO uses when authenticating user credentials against the OIDC compatible provider. This field may be optional depending on the provider.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

Role Policy

Optional

This setting is mutually exclusive with the Claim Name setting.

MINIO_IDENTITY_OPENID_ROLE_POLICY

envvar

identity_openid role_policy

mc-conf

Specify a comma-separated list of policy names to use for the request’s RoleArn for all authentication requests for the provider. The specified policy or policies must already exist on the MinIO Server.

To use this OIDC configuration, you must specify the corresponding RoleArn in the STS request body.

Claim Name

Optional

This setting is mutually exclusive with the Role Policy setting.

MINIO_IDENTITY_OPENID_CLAIM_NAME

envvar

identity_openid claim_name

mc-conf

Specify the name of the JWT Claim MinIO uses to identify the policies to attach to the authenticated user.

The claim can contain one or more comma-separated policy names to attach to the user. The claim must contain at least one policy for the user to have any permissions on the MinIO server.

Defaults to policy.

Claim Prefix

Optional

This setting is deprecated and has been removed as of RELEASE.2024-07-13T01-46-15Z. Use MINIO_IDENTITY_OPENID_CLAIM_NAME instead.

MINIO_IDENTITY_OPENID_CLAIM_PREFIX

envvar

identity_openid claim_prefix

mc-conf

Specify the JWT Claim namespace prefix to apply to the specified claim name.

Display Name

Optional

MINIO_IDENTITY_OPENID_DISPLAY_NAME

envvar

identity_openid display_name

mc-conf

Specify the user-facing name the MinIO Console displays on the login screen.

Scopes

Optional

MINIO_IDENTITY_OPENID_SCOPES

envvar

identity_openid scopes

mc-conf

Specify a comma-separated list of scopes. Defaults to those scopes advertised in the discovery document.

Redirect URI

Optional

This setting is deprecated and has been removed as of RELEASE.2024-07-13T01-46-15Z. Use MINIO_BROWSER_REDIRECT_URL instead.

MINIO_IDENTITY_OPENID_REDIRECT_URI

envvar

identity_openid redirect_uri

mc-conf

Warning

Important

This parameter was removed in RELEASE.2023-02-27T18-10-45Z. Use the MINIO_BROWSER_REDIRECT_URL environment variable instead.

The MinIO Console defaults to using the hostname of the node making the authentication request. For MinIO deployments behind a load balancer or reverse proxy, specify this field to ensure the OIDC provider returns the authentication response to the correct MinIO Console URL. Include the Console hostname, port, and /oauth_callback:

http://minio.example.net:consoleport/oauth_callback

Ensure you start the MinIO Server with the --console-address option to set a static Console listen port. The default behavior with that option omitted is to select a random port number at startup.

The specified URI must match one of the approved redirect / callback URIs on the provider. See the OpenID Authentication Request for more information.

Dynamic URI Redirect

Optional

MINIO_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC

envvar

identity_openid redirect_uri_dynamic

mc-conf

The MinIO Console defaults to using the hostname of the node making the authentication request as part of the redirect URI provided to the OIDC provider. For MinIO deployments behind a load balancer using a round-robin protocol, this may result in the load balancer returning the response to a different MinIO Node than the originating client.

Specify this option as on to direct the MinIO Console to use the Host header of the originating request to construct the redirect URI passed to the OIDC provider. Defaults to off.

User Info

Optional

MINIO_IDENTITY_OPENID_CLAIM_USERINFO

envvar

identity_openid claim_userinfo

mc-conf

Allow MinIO to fetch claims from the UserInfo Endpoint for the authenticated user.

Valid values are on or off.

Vendor

Optional

MINIO_IDENTITY_OPENID_VENDOR

envvar

identity_openid vendor

mc-conf

Specify the OIDC Vendor to enable specific supported behaviors for that vendor.

Supports the following value:

  • keycloak

Keycloak Realm

Optional

This setting requires that the OpenID Vendor setting be defined as keycloak.

MINIO_IDENTITY_OPENID_KEYCLOAK_REALM

envvar

identity_openid keycloak_realm

mc-conf

Specify the Keycloak Realm to use as part of Keycloak Admin API Operations, such as main.

Keycloak Admin URL

Optional

This setting requires that the OpenID Vendor setting be defined as keycloak.

MINIO_IDENTITY_OPENID_KEYCLOAK_ADMIN_URL

envvar

identity_openid keycloak_admin_url

mc-conf

Specify the Keycloak Admin API URL. MinIO can use this URL if configured to periodically validate authenticated Keycloak users as active/existing. For example, https://keycloak-endpoint:port/admin/.

Comment

Optional

MINIO_IDENTITY_OPENID_COMMENT

envvar

identity_openid comment

mc-conf

Specify a comment to associate with the OIDC compatible provider configuration.

1.7.3 - Silo Identity Management Plugin Settings

This page documents settings for enabling external identity management using the MinIO Identity Management Plugin. See MinIO External Identity Management Plugin for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Examples

When setting up the MinIO Identity Management Plugin, you must define at a minimum all of the required settings. The examples here represent the minimum required settings.

MINIO_IDENTITY_PLUGIN_URL="https://authservice.example.net:8080/auth"
MINIO_IDENTITY_PLUGIN_ROLE_POLICY="ConsoleUser"

identity_plugin

mc-conf

Use mc admin config set to create or update the identity plugin configuration. The identity_plugin url argument is required. Specify additional optional arguments as a whitespace (” “)-delimited list.

mc admin config set identity_plugin                  \
   url="https://external-auth.example.net:8080/auth" \
   role_policy="consoleAdmin"                        \
   [ARGUMENT=VALUE] ...

Settings

URL

Required

MINIO_IDENTITY_PLUGIN_URL

envvar

identity_plugin url

mc-conf

The webhook endpoint for the external identity management service (https://authservice.example.net:8080/auth).

Role Policy

Required

MINIO_IDENTITY_PLUGIN_ROLE_POLICY

envvar

identity_plugin role_policy

mc-conf

Specify a comma-separated list of MinIO policies to assign to authenticated users.

Enable

Optional

This setting does not have an environment variable option.

identity_plugin enabled

mc-conf

Set to false to disable the identity provider configuration.

Applications cannot generate STS credentials or otherwise authenticate to MinIO using the configured provider if set to false.

Defaults to true or “enabled”.

Token

Optional

MINIO_IDENTITY_PLUGIN_TOKEN

envvar

identity_plugin token

mc-conf

An authentication token to present to the configured webhook endpoint.

Specify a supported HTTP Authentication scheme as a string value, such as "Bearer TOKEN". MinIO sends the token using the HTTP Authorization header.

Role ID

Optional

MINIO_IDENTITY_PLUGIN_ROLE_ID

envvar

identity_plugin role_id

mc-conf

Specify a unique ID MinIO uses to generate an ARN for this identity manager. MinIO automatically adds an idmp- prefix to the specified ID when generating the ARN.

If omitted, MinIO automatically generates the ID and prints the full ARN to the server log.

Comment

Optional

MINIO_IDENTITY_PLUGIN_COMMENT

envvar

identity_plugin comment

mc-conf

Specify a comment to associate to the identity configuration.

1.7.4 - Silo Access Management Plugin Settings

This page documents settings for enabling external authorization management using the MinIO Access Management Plugin. See MinIO External Access Management Plugin for a tutorial on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Examples

When setting up the MinIO Access Management plugin, you must define at minimum all required settings. The examples here represent the minimum required setting.

MINIO_POLICY_PLUGIN_URL="https://authzservice.example.net:8080/authz"

policy_plugin

mc-conf

Use the mc admin config set command to create or update the access management plugin configuration. The policy_plugin url argument is required. Specify additional optional arguments as a whitespace (” “)-delimited list.

mc admin config set policy_plugin                     \
   url="https://authzservice.example.net:8080/authz"  \
   [ARGUMENT=VALUE] ...

Settings

URL

Required

MINIO_POLICY_PLUGIN_URL

envvar

policy_plugin url

mc-conf

The webhook endpoint for the external access management service (https://authzservice.example.net:8080/authz).

Auth Token

Optional

MINIO_POLICY_PLUGIN_AUTH_TOKEN

envvar

policy_plugin auth_token

mc-conf

An authentication token to present to the configured webhook endpoint.

Specify a supported HTTP Authentication scheme as a string value, such as "Bearer TOKEN". MinIO sends the token using the HTTP Authorization header.

HTTP2

Optional

MINIO_POLICY_PLUGIN_ENABLE_HTTP2

envvar

policy_plugin enable_http2

mc-conf

Enable experimental HTTP2 support for connecting to the configure webhook service.

Defaults to off

Comment

Optional

MINIO_POLICY_PLUGIN_COMMENT

envvar

policy_plugin comment

mc-conf

Specify a comment to associate to the external access management configuration.

1.8 - ILM Settings

This page covers settings that control Information Lifecycle Management (ILM) for the MinIO process.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Expiration Workers

MINIO_ILM_EXPIRATION_WORKERS

envvar

ilm expiration_workers

mc-conf

Note

Added: MinIO

Server RELEASE.2024-03-03T17-50-39Z

Set the number of workers to use for expiring objects. Valid values are 1 to 500.

The default value is 100.

1.9 - Key Encryption Service Settings

MinIO Server includes three groups of environment variables to manage how the MinIO Server interacts with the Key Encryption Service (KES), Key Management Service (KMS), or static key files. You may only define one of the three sets. If more than one type of environment variable sets is defined, MinIO returns an error.

Note

Note

These settings do not have configuration setting options for use with mc admin config set.

Define any one set of these environment variables in the host system prior to starting or restarting the MinIO process. Refer to your operating system’s documentation for how to define an environment variable.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Key Encryption Service

Define the following variables to use the Key Encryption Service (KES) to connect to a supported 3rd party Key Management Service provider.

MINIO_KMS_KES_ENDPOINT

envvar

The endpoint(s) for the MinIO Key Encryption Service (KES) process to use for supporting SSE-S3 and MinIO backend encryption operations. Separate multiple KES endpoints with a ,.

MINIO_KMS_KES_KEY_NAME

envvar

The name of an external key on the Key Management system (KMS) configured on the KES server and used for performing en/decryption operations. MinIO uses this key for the following:

  • Encrypting backend data (IAM, server configuration).
  • The default encryption key for Server-Side Encryption with SSE-KMS.
  • The encryption key for Server-Side Encryption with SSE-S3.
Warning

Important

Enabling SSE on a MinIO deployment automatically encrypts the backend data for that deployment using the default encryption key.

MinIO requires access to KES and the external KMS to decrypt the backend and start normally. The KMS must maintain and provide access to the MINIO_KMS_KES_KEY_NAME. You cannot disable KES later or “undo” the SSE configuration at a later point.

MINIO_KMS_KES_API_KEY

envvar

Preferred method for authenticating with the encryption service using the KES API key obtained from the kes identity new command.

This environment variable is mutually exclusive with the MINIO_KMS_KES_KEY_FILE and MINIO_KMS_KES_CERT_FILE environment variables.

MINIO_KMS_KES_KEY_FILE

envvar

The private key associated with the MINIO_KMS_KES_CERT_FILE X.509 certificate used when authenticating to the KES server. The KES server requires clients to present their certificate for mutual TLS (mTLS).

See the KES wiki for more complete documentation on KES access control.

You must also set the MINIO_KMS_KES_CERT_FILE. This variable is mutually exclusive with MINIO_KMS_KES_API_KEY.

MINIO_KMS_KES_CERT_FILE

envvar

The x.509 certificate to present to the KES server. The KES server requires clients to present their certificate for performing mutual TLS (mTLS).

The KES server computes an identity from the certificate and compares it to its configured policies. The KES server grants the minio server access to only those operations explicitly granted by the policy.

See the KES wiki for more complete documentation on KES access control.

You must also set the MINIO_KMS_KES_KEY_FILE. This variable is mutually exclusive with MINIO_KMS_KES_API_KEY.

MINIO_KMS_KES_CAPATH

envvar

Optional

Allows validation of the KES Server Certificate for a Self-Signed or Third-Party CA. Specify the path to the location of the CA certificate for your KES deployment.

This variable is not required if you use a public certificate authority.

MINIO_KMS_KES_KEY_PASSWORD

envvar

Optional

The password used to encrypt and decrypt the TLS private key, if used.

MinIO Key Management Server (KMS)

Define the following variables to use MinIO KMS to manage keys.

MINIO_KMS_SERVER

envvar

The endpoint(s) for the MinIO Key Management Service (KMS) process to use for supporting SSE-S3 and MinIO backend encryption operations. Separate multiple KMS endpoints with a ,.

MINIO_KMS_ENCLAVE

envvar

The MinIO KMS Enclave where the key and identity exist.

MINIO_KMS_SSE_KEY

envvar

The default key to use for SSE-S3 encryption when a call does not specify a key identity.

MINIO_KMS_API_KEY

envvar

The credential used to authenticate with the MinIO KMS service.

Static Key Files

Caution

Warning

These settings support early development and evaluation of Server-Side Encryption of Objects without depending on an external KMS. Do not use these settings in any extended development, QA, or production environments. See Server-Side Object Encryption with KES for guidance on deploying SSE using MinIO Key Encryption Service (KES) and an external KMS.

Provide a static KMS key or key file to use for encryption.

MINIO_KMS_SECRET_KEY

envvar

The base64 form of the static KMS key in the form <key-name>:<base64-32byte-key>. Implements a subset of KMS APIs.

MINIO_KMS_SECRET_KEY_FILE

envvar

Path to the file to read the static KMS key from.

1.10 - Object Lambda function settings

This page describes the settings available to configure MinIO to publish data to an HTTP webhook endpoint and trigger an Object Lambda function. See Transforms with Object Lambda for more complete documentation and tutorials on using these settings.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Enable

MINIO_LAMBDA_WEBHOOK_ENABLE

envvar

Specify "on" to enable the Object Lambda webhook endpoint for a handler function.

Requires specifying MINIO_LAMBDA_WEBHOOK_ENDPOINT.

You can specify multiple webhooks as Lambda targets by appending a unique identifier for each Object Lambda function. For example, the following command enables two distinct Object Lambda webhook endpoints:

export MINIO_LAMBDA_WEBHOOK_ENABLE_myfunction="on"
export MINIO_LAMBDA_WEBHOOK_ENABLE_yourfunction="on"

lambda_webhook enable

mc-conf

Optional

Specify "on" to enable the Object Lambda webhook endpoint for a handler function. Requires specifying endpoint.

Example:

mc admin config set myminio lambda_webhook:myfunction endpoint="https://example.com/" enable=on

Endpoint

MINIO_LAMBDA_WEBHOOK_ENDPOINT

envvar

The HTTP endpoint of the lambda webhook for the handler function.

You can specify multiple webhook endpoints as Lambda targets by appending a unique identifier for each Object Lambda function. For example, the following command sets two distinct Object Lambda webhook endpoints:

export MINIO_LAMBDA_WEBHOOK_ENDPOINT_myfunction="http://webhook-1.example.com"
export MINIO_LAMBDA_WEBHOOK_ENDPOINT_yourfunction="http://webhook-2.example.com"

lambda_webhook endpoint

mc-conf

Optional

The HTTP endpoint of the lambda webhook for the handler function.

Auth token

MINIO_LAMBDA_WEBHOOK_AUTH_TOKEN

envvar

Specify the opaque string or JWT authorization token to use for authenticating to the lambda webhook service.

You can specify the token for multiple Lambda targets by appending a unique identifier for each Object Lambda function. For example, the following command configures a token for two distinct Object Lambda webhook endpoints:

export MINIO_LAMBDA_WEBHOOK_AUTH_TOKEN_myfunction="1a2b3c4d5e"
export MINIO_LAMBDA_WEBHOOK_AUTH_TOKEN_yourfunction="1a2b3c4d5e"
Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

lambda_webhook auth_token

mc-conf

Optional

Specify the opaque string or JWT authorization token to use for authenticating to the lambda webhook service.

Note

Changed: RELEASE.2023-06-23T20-26-00Z

MinIO redacts this value when returned as part of mc admin config get.

Client cert

MINIO_LAMBDA_WEBHOOK_CLIENT_CERT

envvar

Specify the path to the client certificate to use for performing mTLS authentication to the lambda webhook service.

You can specify the client cert for multiple Lambda targets by appending a unique identifier for each Object Lambda function. For example, the following command configures a cert for two distinct Object Lambda webhook endpoints:

export MINIO_LAMBDA_WEBHOOK_CLIENT_CERT_myfunction="/path/to/cert1"
export MINIO_LAMBDA_WEBHOOK_CLIENT_CERT_yourfunction="/path/to/cert2"

lambda_webhook client_cert

mc-conf

Optional

Specify the path to the client certificate to use for performing mTLS authentication to the lambda webhook service.

Client key

MINIO_LAMBDA_WEBHOOK_CLIENT_KEY

envvar

Specify the path to the private key to use for performing mTLS authentication to the lambda webhook service.

You can specify the client key for multiple Lambda targets by appending a unique identifier for each Object Lambda function. For example, the following command configures a key for two distinct Object Lambda webhook endpoints:

export MINIO_LAMBDA_WEBHOOK_CLIENT_KEY_myfunction="/path/to/key1"
export MINIO_LAMBDA_WEBHOOK_CLIENT_KEY_yourfunction="/path/to/key2"

lambda_webhook client_key

mc-conf

Optional

Specify the path to the private key to use for performing mTLS authentication to the lambda webhook service.

1.11 - Deprecated Settings

This page covers deprecated settings that control core behavior of the MinIO process.

Settings on this page may be removed at any time. Users should migrate to the recommended replacement at the earliest opportunity.

You can establish or modify settings by defining:

  • an environment variable on the host system prior to starting or restarting the MinIO Server. Refer to your operating system’s documentation for how to define an environment variable.
  • a configuration setting using mc admin config set.

If you define both an environment variable and the similar configuration setting, MinIO uses the environment variable value.

Some settings have only an environment variable or a configuration setting, but not both.

Warning

Important

Each configuration setting controls fundamental MinIO behavior and functionality. MinIO strongly recommends testing configuration changes in a lower environment, such as DEV or QA, before applying to production.

Environment Variables

The following environment variables are deprecated. They are listed here for historical reference only.

MINIO_SECRET_KEY

envvar

Caution

Deprecated: RELEASE.2021-04-22T15-44-28Z

The secret key for the root user.

This environment variable is deprecated in favor of the MINIO_ROOT_PASSWORD environment variable.

Caution

Warning

If MINIO_SECRET_KEY is unset, minio defaults to minioadmin.

NEVER use the default credentials in production environments. MinIO strongly recommends specifying a unique, long, and random MINIO_ACCESS_KEY value for all environments.

MINIO_ACCESS_KEY

envvar

Caution

Deprecated: RELEASE.2021-04-22T15-44-28Z

The access key for the root user.

This environment variable is deprecated in favor of the MINIO_ROOT_USER environment variable.

Caution

Warning

If MINIO_ACCESS_KEY is unset, minio defaults to minioadmin.

NEVER use the default credentials in production environments. MinIO strongly recommends specifying a unique, long, and random MINIO_ACCESS_KEY value for all environments.

MINIO_ACCESS_KEY_OLD

envvar

Caution

Deprecated: RELEASE.2021-04-22T15-44-28Z

To perform root credential rotation, modify the MINIO_ROOT_USER and MINIO_ROOT_PASSWORD environment variables.

MINIO_OPERATOR_DEPLOYMENT_NAME

envvar

Caution

Deprecated: Operator

6.0.4

Specifies the namespace to create and use for Operator.

When not specified, the default value is minio-operator.

MINIO_SECRET_KEY_OLD

envvar

Caution

Deprecated: RELEASE.2021-04-22T15-44-28Z

To perform root credential rotation, modify the MINIO_ROOT_USER and MINIO_ROOT_PASSWORD environment variables.

MINIO_SERVER_URL

envvar

Caution

Deprecated: RELEASE.2024-05-10T01-41-38Z

The fully qualified domain name (FQDN) the MinIO Console uses for connecting to the MinIO Server.

For the Console to function correctly, the MinIO server URL must be the FQDN of the host, resolveable, and reachable.

If the specified value does not resolve to the MinIO server, logins via the MinIO Console fail and return a network error after a wait period. Older versions of the Console may return a generic ‘Invalid Login’ error instead. Unset the value or address the FQDN resolution issue to allow Console logins to proceed. This setting may be required if:

  • The MinIO Server uses a TLS certificate that does not include the host local IP(s) in the certificate Subject Alternative Name (SAN).

or

  • The Console must use a specific hostname to connect or reference the MinIO Server, such as due to a reverse proxy or similar configuration.