Skip to content

Silo Console Settings

Embedded Console fixes after 0903

Fixes are tracked for local-proxy source attribution (#147) and ignored WebSocket limits (#148). The behavior below requires a build containing both fixes; the 0903 image does not include them.

Proxy source addresses

Embedded Console uses MINIO_API_TRUSTED_PROXIES; CONSOLE_TRUSTED_PROXIES remains standalone-only. Client attribution affects aws:SourceIp policies and WebSocket limits.

Setting Trusted Console TCP peers Forwarded-chain entries skipped
Unset or blank Loopback (127.0.0.0/8, ::1, including IPv4-mapped addresses) None
IP/CIDR list Loopback plus listed peers Explicit list entries only
none / off None None
Invalid or unreadable Startup error None

Separate list entries with commas, semicolons or whitespace. Specify the actual peer addresses of proxies on other hosts or containers. Local proxies need no setting, but must sanitize forwarded source headers: this behavior trusts local processes. A loopback address inside a header does not automatically become a trusted hop. Standalone Console still requires explicit proxy trust.

The Server’s S3 policy is unchanged. With none/off, S3 also ignores the browser address forwarded by embedded Console, so IP policies through Console see the internal peer. WebSocket Origin checks still require a matching authority; loopback trust alone does not allow arbitrary origins.

WebSocket connection limits

Set these variables in the Server environment or MINIO_CONFIG_ENV_FILE:

Variable Default
CONSOLE_WS_MAX_CONNECTIONS 1024
CONSOLE_WS_MAX_CONNECTIONS_PER_CLIENT 256
CONSOLE_WS_MAX_ANONYMOUS_CONNECTIONS 64
CONSOLE_WS_MAX_ANONYMOUS_CONNECTIONS_PER_CLIENT 8

Public browsing uses one WebSocket per tab. NAT clients share an address; IPv6 clients share a budget per /64. For example, set CONSOLE_WS_MAX_ANONYMOUS_CONNECTIONS_PER_CLIENT=16 to allow more anonymous tabs from one address. Defaults and authenticated capacity reservations remain unchanged.

Values must be integers from 1 to 1048576. Each anonymous cap must be strictly below its corresponding shared cap, and the anonymous per-client cap must not exceed the anonymous total. Unset uses the default; explicitly blank values, literal env:// references and invalid relationships are errors. Configuration errors exit Server before Console serves requests, although the S3 listener may already have started. Other CONSOLE_* operator overrides are still cleared and derived from Server configuration.

Object sharing

Note

Console v2.4.1: #56 implements the boundary below, released in v2.4.1. Server #209 integrates the corresponding embedded behavior. See the component notes.

The fix requires no new setting. Its request restrictions always apply, and normal sharing remains available. CONSOLE_SHARE_MINIO_URL continues to select only the generated link format. The anonymous proxy is limited to object-content GET requests:

Allowed Rejected
Configured S3 scheme, host and effective port Other origins, URL user information and fragments
/valid-bucket/nonempty-object-key Root/bucket-only requests, minio and .minio.sys* system paths, dot path components
Signatures, session tokens, versions, object parts and download response options Query-selected operations: acl, tagging, retention, legal-hold, attributes, uploadId, lambdaArn, torrent; malformed query encoding
Direct backend responses All 3xx return 502 without following the redirect or forwarding Location

S3 continues to enforce authorization: unsigned public objects are allowed by their policies; private objects require valid authorization. Original URL encoding and signature parameters are preserved. Manual proxying of bucket listings, object subresources or downloads that depend on redirects no longer works through this endpoint.

The access boundary applies whenever sharing is available. A prototype included CONSOLE_SHARE_ENABLED=off, but that switch and its frontend and embedded-Server plumbing were removed: disabling an entire feature is a separate product requirement, while the proxy must enforce its scope without extra configuration. CONSOLE_SHARE_MINIO_URL therefore remains a link-format setting, not an access control. Requiring signature-shaped parameters would not protect public metrics, and a separate Console MAC or link registry is not needed for this bounded object download contract. The encoded URL is not authenticated as Console-issued.

These checks add local parsing and comparisons, without extra S3/IAM requests, stored tokens, new signing keys or whole-object buffering. New query-selected S3 operations must be reviewed against the deny list and regression tests. The issue decision record documents the threat model, alternatives and compatibility tradeoffs. Thanks to Jiri Pejchal (@jiri-pejchal) for reporting the internal-metrics exposure.

Console settings reference

Note

Upstream MinIO change: RELEASE.2025-05-24T17-08-30Z

Upstream MinIO reduced its Console to object browsing. SILO Console retains the administrative interface, including user management; see Console compatibility.

The inherited settings below must be interpreted for the deployed Server and Console versions.

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

You can establish or modify settings by defining:

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

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

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

Warning

Important

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

Browser Settings

The following settings control behavior for the embedded MinIO Console.

MinIO Console

Optional

MINIO_BROWSER

envvar

Specify off to disable the embedded MinIO Console.

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

Animation

Optional

MINIO_BROWSER_LOGIN_ANIMATION

envvar

Note

Added: MinIO

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

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

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

Browser Redirect

Optional

MINIO_BROWSER_REDIRECT

envvar

Note

Added: MinIO

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

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

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

Browser Redirect URL

Optional

MINIO_BROWSER_REDIRECT_URL

envvar

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

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

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

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

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

Session Duration

Optional

MINIO_BROWSER_SESSION_DURATION

envvar

Note

Added: MinIO

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

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

MinIO supports the following units of time measurement:

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

Defaults to 12h.

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

Log Query URL

Optional

MINIO_LOG_QUERY_URL

envvar

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

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

Content Security Policy

Optional

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

MINIO_BROWSER_CONTENT_SECURITY_POLICY

envvar

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

mc-conf

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

Strict Transport Security

Optional

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

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

MINIO_BROWSER_HSTS_SECONDS

envvar

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

export MINIO_BROWSER_HSTS_SECONDS=31536000
MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS

envvar

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

export MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS="on"
MINIO_BROWSER_HSTS_PRELOAD

envvar

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

export MINIO_BROWSER_HSTS_PRELOAD="on"

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

browser hsts_seconds

mc-conf

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

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

mc-conf

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

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

mc-conf

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

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

Examples

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

hsts_seconds

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

hsts_include_subdomains

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

hsts_preload

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

Referrer Policy

Optional

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

MINIO_BROWSER_REFERRER_POLICY

envvar

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

mc-conf

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

Prometheus Settings

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

Prometheus URL

Optional

MINIO_PROMETHEUS_URL

envvar

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

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

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

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

Prometheus Job ID

Optional

MINIO_PROMETHEUS_JOB_ID

envvar

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

MinIO defaults to minio-job.

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

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

Prometheus Auth Token

Optional

MINIO_PROMETHEUS_AUTH_TOKEN

envvar

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

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

eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW8iLCJleHAiOjQ4NTAwMzg0MDJ9.GZCKR3d0FH2TCvNHSd39HaVfSuQVVV0s8glICBDmhT51V6CQ_hw8gTYlKHJmcpR8aHkqiJwCqcYJhaMmqwe00XY

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

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