This is the multi-page printable view of this section. .
Silo Server (minio)
-
1: Settings Overview
- 1.1: Core Settings
- 1.2: Root Access Settings
- 1.3: Erasure Code Settings
- 1.4: Silo Console Settings
- 1.5: Metrics and Logging Settings
-
1.6: Bucket Notifications Settings
- 1.6.1: AMQP Notification Settings
- 1.6.2: Elasticsearch Notification Settings
- 1.6.3: Kafka Notification Settings
- 1.6.4: MQTT Notification Settings
- 1.6.5: MySQL Notification Settings
- 1.6.6: NATS Notification Settings
- 1.6.7: NSQ Notification Settings
- 1.6.8: PostgreSQL Notification Settings
- 1.6.9: Redis Notification Settings
- 1.6.10: Webhook Service Notification Settings
- 1.7: Identity and Access Management Settings
- 1.8: ILM Settings
- 1.9: Key Encryption Service Settings
- 1.10: Object Lambda function settings
- 1.11: Deprecated Settings
Silo Server
The minio server command starts the Silo server process. The executable and subcommand names remain minio server as a compatibility contract:
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:
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.nethttps://minio2.example.nethttps://minio3.example.nethttps://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.
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.
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:
A command like the following would listen for API calls on port 9000 on both configured IP addresses.
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, typically8021 -
(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 TLSUse with
tls-public-cert. -
(Optional)
tls-public-cert, which takes the path to the certificate for accessing the MinIO deployment by TLSUse 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:
--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 |
|---|---|---|
|
Port to use for connecting to SFTP. |
Any valid port number, typically |
|
Path to the user’s private key file. |
Absolute path or relative path from current location to the key file to use. |
|
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. |
|
Comma-separated list of the public key algorithms to support. |
|
|
Comma-separated list in priority order of the key-exchange algorithms to support. |
|
|
Comma-separated list of cipher algorithms to support |
|
|
Comma-separated list in preference order of MAC algorithms to support.
Based on RFC 4253 section 6.4 with the exception of |
|
|
Disable password authentication. |
|
For example:
--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:
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.
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
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.
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.
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:
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:
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/.
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:
|
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. |
|
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. |
|
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. |
|
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. |
|
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.
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".
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".
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.
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
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
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.
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.
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.
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.
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
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.
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
Added: Server
RELEASE.2024-03-03T17-50-39Z
MinIO automatically generates unique root credentials if all of the following conditions are true:
-
KES Release 2024-03-01T18-06-46Z or later running
-
Have not defined:
MINIO_ROOT_USERvariableMINIO_ROOT_PASSWORDvariable
-
Have:
- set up KES with a supported KMS target
- disabled root access with the MinIO environment variable
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.
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
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 . 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
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
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.
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
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
NoteAdded: 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
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
browser csp_policy
mc-conf
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.
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.
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.
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.
browser hsts_include_subdomains
mc-conf
Set to on to also apply the configured HSTS policy to all MinIO Console subdomains. Defaults to off.
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.
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
hsts_include_subdomains
hsts_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
browser referrer_policy
mc-conf
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:
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.
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 generateto generate the necessary JWT bearer tokens. -
publicMinIO 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:
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:
Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:
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:
Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:
Consult the documentation for the desired service for more details.
Batch Size
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
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
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:
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.
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:
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:
Modify the value according to the endpoint requirements.
A custom authentication format could resemble the following:
Modify the value according to the endpoint requirements.
A command for a custom authentication format could resemble the following:
Consult the documentation for the desired service for more details.
Batch Size
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
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
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
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.
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:
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.
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.
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.
The SASL password MinIO uses for authentication against the Kafka brokers.
SASL Mechanism
Optional
MINIO_AUDIT_KAFKA_SASL_MECHANISM
envvar
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
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.
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.
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.
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:
For example, MINIO_NOTIFY_AMQP_ENABLE_PRIMARY indicates the environment variable is associated to an AMQP service endpoint with ID of PRIMARY.
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.
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.
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.
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
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.
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.
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.
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.
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:
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.
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"
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).
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)SHA256SHA512
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
onto disable TLS verification (Default). - Specify
offto 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.
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
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:
nonesnappygziplz4zstd
Compression Level
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.
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:
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:
brokertopicusernameOptional if MQTT server/broker does not enforce authentication/authorizationpasswordOptional if MQTT server/broker does not enforce authentication/authorization
Specify additional optional arguments as a whitespace (" ")-delimited list.
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:1883tls://mqtt.example.net:1883ws://mqtt.example.net:1883
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.
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.
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:
With these settings, MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY indicates the environment variable is associated to a MySQL service endpoint with ID of PRIMARY.
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.
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"
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
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.
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:
With these settings, MINIO_NOTIFY_NATS_ENABLE_PRIMARY indicates the environment variable is associated to an NATS service endpoint with ID of PRIMARY.
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.
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.
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.
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.
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
onto disable TLS verification (Default). - Specify
offto 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.
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:
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.
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
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
onto disable TLS verification (Default). - Specify
offto 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.
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:
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.
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.
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.
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:
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.
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.
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.
Changed: RELEASE.2023-06-23T20-26-00Z
MinIO redacts this value when returned as part of mc admin config get.
User
Optional
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.
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:
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.
Endpoint
Required
MINIO_NOTIFY_WEBHOOK_ENDPOINT
envvar
notify_webhook endpoint
mc-conf
Specify the URL for the webhook service.
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:
Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:
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:
Modify the value according to the endpoint requirements. A custom authentication format could resemble the following:
Consult the documentation for the desired service for more details.
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.
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.
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
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:
enabledserver_addrlookup_bind_dnlookup_bind_dn_passworduser_dn_search_base_dnuser_dn_search_filter
Settings
Server Address
Required
MINIO_IDENTITY_LDAP_SERVER_ADDR
envvar
Specify the hostname for the Active Directory / LDAP server. For example:
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:
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.
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:
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:
User DN Attributes
Optional
MINIO_IDENTITY_LDAP_USER_DN_ATTRIBUTES
envvar
identity_ldap user_dn_attributes
mc-conf
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.
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:
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:
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
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:
For SRV record names with beginning with _ldaps, specify ldaps. The constructed DNS SRV record name resembles the following:
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.
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.
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
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.
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.
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
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:
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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
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.
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:
lambda_webhook enable
mc-conf
Optional
Specify "on" to enable the Object Lambda webhook endpoint for a handler function. Requires specifying endpoint.
Example:
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:
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:
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.
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:
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:
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.
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
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.
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
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_USERenvironment variable.
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
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
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
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
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.