Deploying Enterprise MinIO: Basics
TrueNAS Enterprise
TrueNAS Enterprise-licensed systems do not have applications available by default. To enable applications as part of the Enterprise license, consult with the TrueNAS Support team.
Official TrueNAS support for Enterprise apps falls under two tiers: Enterprise Deployment Support and Enterprise Application Support. Please review the App Support Definitions and consult with the TrueNAS Support Team for any further clarifications.
Installing MinIO Enterprise MNMD
TrueNAS Enterprise
TrueNAS Enterprise-licensed systems do not have applications available by default. To enable applications as part of the Enterprise license, consult with the TrueNAS Support team.
Official TrueNAS support for Enterprise apps falls under two tiers: Enterprise Deployment Support and Enterprise Application Support. Please review the App Support Definitions and consult with the TrueNAS Support Team for any further clarifications.
Installing MinIO Enterprise SNMD
TrueNAS Enterprise
TrueNAS Enterprise-licensed systems do not have applications available by default. To enable applications as part of the Enterprise license, consult with the TrueNAS Support team.
Official TrueNAS support for Enterprise apps falls under two tiers: Enterprise Deployment Support and Enterprise Application Support. Please review the App Support Definitions and consult with the TrueNAS Support Team for any further clarifications.
MinIO (Enterprise)
MinIO™™
Get Started with Apps!Requires TrueNAS: 24.10.2.2 or newer
App Version: RELEASE.2025-04-22T22-12-26Z
Keywords: object storage, minio, cloud, s3
Train: Enterprise
Home Page: https://min.ioMinIO™ Details
Added: 2024-08-15
Last Updated: 2026-09-02High Performance, Kubernetes Native Object Storage
Run as Context
- Container [minio] can run as any non-root user and group.
Group: 568 / Host group is [apps]
User: 568 / Host user is [apps]×App Metadata (Raw File)
{ "1.3.20": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/enterprise/minio/1.3.20", "last_update": "2026-09-02 20:56:51", "required_features": [], "human_version": "RELEASE.2025-04-22T22-12-26Z_1.3.20", "version": "1.3.20", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "RELEASE.2025-04-22T22-12-26Z", "capabilities": [], "categories": [ "storage" ], "date_added": "2024-08-15", "description": "High Performance, Kubernetes Native Object Storage", "home": "https://min.io", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/ix-app/icons/icon.webp", "keywords": [ "object storage", "minio", "cloud", "s3" ], "lib_version": "2.1.77", "lib_version_hash": "1837f8e69ae1adc313330c3b1c2615e9b4d03c5459d657a5898bae78090f8195", "maintainers": [ { "email": "dev@truenas.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "minio", "run_as_context": [ { "description": "Container [minio] can run as any non-root user and group.", "gid": 568, "group_name": "Host group is [apps]", "uid": 568, "user_name": "Host user is [apps]" } ], "screenshots": [], "sources": [ "https://apps.truenas.com/catalog/minio_enterprise/", "https://github.com/minio/minio" ], "title": "MinIO\u2122", "train": "enterprise", "version": "1.3.20" }, "schema": { "groups": [ { "name": "MinIO\u2122 Configuration", "description": "Configure MinIO\u2122" }, { "name": "User and Group Configuration", "description": "Configure User and Group for MinIO\u2122" }, { "name": "Network Configuration", "description": "Configure Network for MinIO\u2122" }, { "name": "Storage Configuration", "description": "Configure Storage for MinIO\u2122" }, { "name": "Labels Configuration", "description": "Configure Labels for MinIO\u2122" }, { "name": "Resources Configuration", "description": "Configure Resources for MinIO\u2122" } ], "questions": [ { "variable": "minio", "label": "", "group": "MinIO\u2122 Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "credentials", "label": "Credentials", "description": "The credentials for the root user.", "schema": { "type": "dict", "attrs": [ { "variable": "access_key", "label": "MinIO\u2122 Root User", "description": "Root user with access to all actions and resources on the deployment. </br>\nIt doubles as the \"access key\" for the MinIO\u2122 deployment.\n", "schema": { "type": "string", "min_length": 5, "required": true, "private": true } }, { "variable": "secret_key", "label": "MinIO\u2122 Root Password", "description": "Root password for the MinIO\u2122 root user.</br>\nIt doubles as the \"secret key\" for the MinIO\u2122 deployment.\n", "schema": { "type": "string", "min_length": 8, "required": true, "private": true } } ] } }, { "variable": "multi_mode", "label": "Multi Mode (SNMD or MNMD) Configuration", "description": "For Single Node Multi Drive (SNMD), the entry will look like this:</br>\nExample Entry - /data{1...4}</br></br>\nFor Multi Node Multi Drive (MNMD), the entry will look like this:</br>\nExample Entry - https://minio{1...3}.example.com:30000/data{1...4}</br></br>\nNote that each host must use the same port number and the same number of storage items.</br>\nIn both cases /data{1...4} is the directories to be used for MinIO\u2122.\nYou have to add additional storage for each data entry.\n", "schema": { "type": "dict", "attrs": [ { "variable": "enabled", "label": "Enabled", "description": "Enable Multi Mode", "schema": { "type": "boolean", "default": false } }, { "variable": "entries", "label": "Multi Mode (SNMD or MNMD) Entries", "schema": { "type": "list", "show_if": [ [ "enabled", "=", true ] ], "default": [], "items": [ { "variable": "item", "label": "", "schema": { "type": "string", "required": true } } ] } } ] } }, { "variable": "logging", "label": "", "description": "Logging configuration", "schema": { "type": "dict", "attrs": [ { "variable": "quiet", "label": "Quiet", "description": "Disables startup information.", "schema": { "type": "boolean", "default": false } }, { "variable": "anonymous", "label": "Anonymous", "description": "Hides sensitive information from logging.", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "additional_envs", "label": "Additional Environment Variables", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string" } } ] } } ] } } ] } }, { "variable": "run_as", "label": "", "group": "User and Group Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "user", "label": "User ID", "description": "The user id that MinIO\u2122 will run as.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that MinIO\u2122 will run as.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } } ] } }, { "variable": "network", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "api_port", "label": "API Port", "description": "The port for the MinIO\u2122 API.", "schema": { "type": "dict", "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n", "schema": { "type": "string", "default": "published", "enum": [ { "value": "published", "description": "Publish port on the host for external access" }, { "value": "exposed", "description": "Expose port for inter-container communication" }, { "value": "", "description": "None" } ] } }, { "variable": "port_number", "label": "Port Number", "schema": { "type": "int", "default": 30000, "min": 1, "max": 65535, "required": true } }, { "variable": "host_ips", "label": "Host IPs", "description": "IPs on the host to bind this port", "schema": { "type": "list", "show_if": [ [ "bind_mode", "=", "published" ] ], "default": [], "items": [ { "variable": "host_ip", "label": "Host IP", "schema": { "type": "string", "required": true, "$ref": [ "definitions/node_bind_ip" ] } } ] } } ] } }, { "variable": "console_port", "label": "Console Port (Web UI)", "description": "The port for the MinIO\u2122 Web UI.", "schema": { "type": "dict", "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n", "schema": { "type": "string", "default": "published", "enum": [ { "value": "published", "description": "Publish port on the host for external access" }, { "value": "exposed", "description": "Expose port for inter-container communication" }, { "value": "", "description": "None" } ] } }, { "variable": "port_number", "label": "Port Number", "schema": { "type": "int", "default": 30001, "min": 1, "max": 65535, "required": true } }, { "variable": "host_ips", "label": "Host IPs", "description": "IPs on the host to bind this port", "schema": { "type": "list", "show_if": [ [ "bind_mode", "=", "published" ] ], "default": [], "items": [ { "variable": "host_ip", "label": "Host IP", "schema": { "type": "string", "required": true, "$ref": [ "definitions/node_bind_ip" ] } } ] } } ] } }, { "variable": "server_url", "label": "Server URL", "description": "The URL that console will use to reach API</br>\nUsually the port is needed, unless you have a reverse proxy in front of MinIO\u2122.</br>\nFor example: </br>\n- https://minio1.example.com</br>\n- https://minio1.example.com:30000\n", "schema": { "type": "uri", "required": true } }, { "variable": "console_url", "label": "Console URL", "description": "The URL that console will provide as a redirect URL</br>\nUsually the port is needed, unless you have a reverse proxy in front of MinIO\u2122.</br>\nFor example: </br>\n- https://console.example.com.</br>\n- https://minio1.example.com:30001\n", "schema": { "type": "uri", "required": true } }, { "variable": "host_network", "label": "Host Network", "description": "Bind to the host network. It's recommended to keep this disabled.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "certificate_id", "label": "Certificate", "description": "The certificate to use for MinIO\u2122", "schema": { "type": "int", "null": true, "$ref": [ "definitions/certificate" ] } } ] } }, { "variable": "storage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "data_dirs", "label": "Data Directories", "schema": { "type": "list", "default": [ { "type": "ix_volume", "mount_path": "/data1", "ix_volume_config": { "dataset_name": "data1" } } ], "items": [ { "variable": "item", "label": "", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "default": "host_path", "enum": [ { "value": "host_path", "description": "Host Path (Path that already exists on the system)" }, { "value": "ix_volume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "mount_path", "label": "Mount Path", "description": "The path inside the container to mount the storage.", "schema": { "type": "path", "required": true, "default": "/data1" } }, { "variable": "host_path_config", "label": "Host Path Configuration", "schema": { "type": "dict", "show_if": [ [ "type", "=", "host_path" ] ], "attrs": [ { "variable": "acl_enable", "label": "Enable ACL", "description": "Enable ACL for the storage.", "schema": { "type": "boolean", "default": false } }, { "variable": "acl", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "acl_enable", "=", true ] ], "attrs": [], "$ref": [ "normalize/acl" ] } }, { "variable": "path", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "acl_enable", "=", false ] ], "required": true } } ] } }, { "variable": "ix_volume_config", "label": "ixVolume Configuration", "description": "The configuration for the ixVolume dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "ix_volume" ] ], "$ref": [ "normalize/ix_volume" ], "attrs": [ { "variable": "acl_enable", "label": "Enable ACL", "description": "Enable ACL for the storage.", "schema": { "type": "boolean", "default": false } }, { "variable": "dataset_name", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "required": true, "default": "data1" } }, { "variable": "acl_entries", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "acl_enable", "=", true ] ], "attrs": [], "$ref": [ "normalize/acl" ] } } ] } } ] } } ] } } ] } }, { "variable": "labels", "label": "", "group": "Labels Configuration", "schema": { "type": "list", "default": [], "items": [ { "variable": "label", "label": "Label", "schema": { "type": "dict", "attrs": [ { "variable": "key", "label": "Key", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } }, { "variable": "containers", "label": "Containers", "description": "Containers where the label should be applied", "schema": { "type": "list", "items": [ { "variable": "container", "label": "Container", "schema": { "type": "string", "required": true, "enum": [ { "value": "minio", "description": "minio" } ] } } ] } } ] } } ] } }, { "variable": "resources", "label": "", "group": "Resources Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "limits", "label": "Limits", "schema": { "type": "dict", "attrs": [ { "variable": "cpus", "label": "CPUs", "description": "CPUs limit for MinIO\u2122.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for MinIO\u2122.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>MinIO\u2122</h1> <p><a href=\"https://min.io\">MinIO\u2122</a> is a High Performance Object Storage released under the AGPLv3 License. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads.</p> <p>MinIO is a trademark of MinIO, Inc.</p>", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "RELEASE.2025-04-22T22-12-26Z", "capabilities": [], "categories": [ "storage" ], "date_added": "2024-08-15", "description": "High Performance, Kubernetes Native Object Storage", "home": "https://min.io", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/ix-app/icons/icon.webp", "keywords": [ "object storage", "minio", "cloud", "s3" ], "lib_version": "2.1.77", "lib_version_hash": "1837f8e69ae1adc313330c3b1c2615e9b4d03c5459d657a5898bae78090f8195", "maintainers": [ { "email": "dev@truenas.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "minio", "run_as_context": [ { "description": "Container [minio] can run as any non-root user and group.", "gid": 568, "group_name": "Host group is [apps]", "uid": 568, "user_name": "Host user is [apps]" } ], "screenshots": [], "sources": [ "https://apps.truenas.com/catalog/minio_enterprise/", "https://github.com/minio/minio" ], "title": "MinIO\u2122", "train": "enterprise", "version": "1.3.20" } } }MinIO is a trademark of the MinIO Corporation.
MinIO (Stable)
MinIO (Stable) REMOVEDTrain: Stable
Removed: 2026-07-09About MinIO (Stable)Description and resources for the TrueNAS stable application called MinIO.
This information reflects the app's last known state before removal.
MinIO is a trademark of the MinIO Corporation.
MinIO (Stable) Deployments
Support and documentation for applications within the Stable catalog is handled by the TrueNAS community. The TrueNAS Applications Portal hosts but does not validate or maintain any linked resources associated with this app.
We welcome community contributions to keep this documentation current! Click Edit Page in the top right corner to propose changes to this article.
MinIO™ High Performance Object Storage, released under the Apache Licenses v2.0 is an open source Amazon S3 cloud storage compatible object storage solution. The TrueNAS MinIO applications allow users to build high-performance infrastructure for machine learning, analytics, and application data workloads.
Setting Up MinIO Clustering
Support and documentation for applications within the Stable catalog is handled by the TrueNAS community. The TrueNAS Applications Portal hosts but does not validate or maintain any linked resources associated with this app.
We welcome community contributions to keep this documentation current! Click Edit Page in the top right corner to propose changes to this article.
This article applies to the public release of the TrueNAS S3 MinIO™ stable train application configured in a distributed mode cluster.TrueNAS 23.10 and later allows users to create a MinIO S3 distributed instance to scale out TrueNAS to handle individual node failures. A node is a single TrueNAS storage system in a cluster.


