TrueNAS Apps: TutorialsApplication maintenance is independent from TrueNAS version release cycles.
App versions, features, options, and installation behavior at time of access might vary from documented tutorials and UI reference.
MinIO
16 minute read.
We welcome community contributions to keep this documentation current! Click Edit Page in the top right corner to propose changes to this article. See Updating Content for more information.
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.
TrueNAS has two version of the MinIO application, a stable and enterprise train version. The tutorials in this section cover installing the TrueNAS stable train version of the MinIO.
The smaller MinIO enterprise train version of the application is tested and polished for a safe and supportable experience for TrueNAS Enterprise customers. Community members can install either version of this application.
This procedure covers the basic requirements and instruction on installing and configuring the MinIO application in the stable train. For instructions on installing the Enterprise version of the MinIO application see Configuring Enterprise MinIO.
Before you install the stable version of the MinIO app:
Set a pool for applications to use if not already assigned.
Go to Apps. If the pool for apps is not already set, do it when prompted.
TrueNAS creates the ix-apps (hidden) dataset in the pool set as the application pool. This dataset is internally managed, so you cannot use this as the parent when you create required application datasets.
After setting the pool, the Installed Applications screen displays Apps Service Running on the top screen banner.
(Optional) Create a new TrueNAS user to serve as the administrator for the app. You can use the default user or add a new user. When you create a new user select Create New Primary Group, and select the appropriate group in the Auxiliary Group for the type of user you want to create. Make note of the UID for the new user to add in the installation wizard.
Create the required dataset(s).
Go to Datasets and select the pool or dataset where you want to place the MinIO dataset. For example, /tank/apps/minio or /tank/minio. You can use either an existing pool or create a new one.
Create the data dataset(s) before beginning the app installation process. You can organize the dataset(s) under a parent dataset for MinIO to keep the storage datasets separated from the dataset for other potential applications. For example, create the minio dataset and nest data under it.
After creating the dataset, create the directory where MinIO stores information the application uses.
To create a directory, open the Linux CLI and enter
mkdir path="/path/to/directory"
or if you have a share created on your system with access to the dataset use it to create a directory.MinIO uses both the default /export and the /data mount points during storage configuration. The MinIO enterprise app creates the /export mount point for you but you must add this in the stable MinIO app. Create the /data mount point in both the enterprise and stable versions of the MinIO app.
You can configure dataset ACL permissions when prompted as you add datasets or by clicking by Edit on the Permissions widget to open the Edit ACL screen. Alternatively, you can configure ACL permissions while using the app installation wizard by selecting the Enable ACL option as you configure each app storage volume. See information provided in the sections below for details on which user ID and permissions settings to configure.
If you want to also mount other storage volumes inside the container pod using the host path option, create the dataset(s) before using the app installation wizard.
If your system has active sharing configurations (SMB, NFS, iSCSI), disable them in System > Services before adding and configuring the MinIO application. Start any sharing services after MinIO completes the installation and starts.
This basic procedure covers the required MinIO stable app settings. For optional settings, see Understanding MinIO Wizard Settings.
Go to Apps, click on Discover Apps, and locate the app widget by either scrolling down to it or begin typing the name into the search field. For example, to locate the MinIO app widget, begin typing minIO into the search field to show app widgets matching the search input.
If this is the first application installed, TrueNAS displays a dialog about configuring apps.
If not the first time installing apps the dialog does not show, click on the widget to open the app information screen.
Click Install to open the app installation wizard.
Application configuration settings are grouped into several sections, each explained below in Understanding App Installation Wizard Settings. To find specific fields begin typing in the Search Input Fields search field to show the section or field, scroll down to a particular section, or click on the section heading in the list of sections on the upper-right of the wizard screen.
Accept the default value or enter a name in Application Name field. In most cases use the default name, but if adding a second deployment of the application you must change this name.
Accept the default version number in Version. When a new version becomes available, the application shows an update badge and the Application Info widget on the Installed applications screen shows the Update button.
You can have multiple deployments of the same app (for example, two or more from the stable or enterprise trains, or a combination of the stable and enterprise trains).
Next, enter the MinIO Configuration settings.
The MinIO wizard defaults include all the arguments you need to deploy a container for the application.
Enter a name in Root User to use as the MinIO access key. Enter a name of five to 20 characters in length, for example admin or admin1. Next enter the Root Password to use as the MinIO secret key. Enter eight to 40 random characters, for example MySecr3tPa$$w0d4Min10.
Refer to MinIO User Management for more information.
Keep all passwords and credentials secured and backed up.
MinIO containers use server port 9000. The MinIO Console communicates using port 9001.
You can configure the API and UI access node ports and the MinIO domain name if you have TLS configured for MinIO.
MinIO uses two datasets and mount paths. Set the first to /export with the host path set to the export dataset. The other mount point is /data with the host path set to the data dataset.
Configure the storage volumes. Accept the default value in Mount Path under MinIO Export Storage (Data), and leave Type set to ixVolume (Dataset created automatically by the system). This sets the first mount point to /export.
Click Add to the right of Additional Storage. Next set the Mount Path for the data dataset. Enter /data in Mount Path and enter or browse to select the host path to the data dataset.
Select Enable ACL for the /export storage volume, enter 473 as the user and give it full permissions. Repeat for the /data storage volume.
Accept the default values in Resources Configuration.
Click Install.
The Installed applications screen opens showing the application in the Deploying state before it changes to Running when the application is ready to use.
Click Web Portal to open the MinIO sign-in screen.
The following section provide more detailed explanations of the settings found in each section of the Install MinIO configuration screen.
Accept the default value or enter a name in Application Name field. In most cases use the default name, but if adding a second deployment of the application you must change this name.
Accept the default version number in Version. When a new version becomes available, the application shows an update badge and the Application Info widget on the Installed applications screen shows the Update button.
MinIO credentials establish the login credentials for the MinIO web portal and the MinIO administration user, and to enter extra arguments, or environment variables to the deployment.
Enter existing MinIO credentials if you already have a MinIO account, or create new login credentials for the first time you log into MinIO.
Enter a username for the root user (MinIO access key) in MinIO Root User that is limited to five to 20 characters long. For example admin or admin1.
Enter the root user password (MinIO secret key) in MinIO Root Password that is limited to eight to 40 random characters. For example, MySecr3tPa$$w0d4Min10.
Select Enable Distributed Mode when setting up a cluster of SCALE systems in a distributed cluster.
MinIO in distributed mode allows you to pool multiple drives or TrueNAS SCALE systems (even if they are different machines) into a single object storage server for better data protection in the event of single or multiple node failures because MinIO distributes the drives across several nodes. For more information, see the Distributed MinIO Quickstart Guide.
To create a distributed cluster, click Add to show the Distributed MinIO Instance URI(s) fields for each TrueNAS system (node) IP addresses/host names to include in the cluster. Use the same order across all the nodes.
The app is preconfigured with the arguments needed to deploy a container. Do not enter the server and URL argument earlier versions of the app required.
Refer to MinIO User Management for more information.
Keep all passwords and credentials secured and backed up.
The Extra Arguments and Extra Environment Variables settings are not required to deploy the application as the app is preconfigured with the arguments needed to deploy a container. Do not enter the server and URL argument required in earlier versions of the app.
Network configuration settings set the port number to access the MinIO API and console port.
Accept the default port settings in Network Configuration. Before changing ports, refer to Default Ports.
The Certificates setting is not required for a basic configuration but is required when setting up multi-mode configurations with the Enterprise version of the MinIO app and when using MinIO as an immutable target for Veeam Backup and Replication.
To add advanced DNS settings click Add to the right of DNS Options.
MinIO storage settings include the option to add mount paths and storage volumes to use inside the container (pod). Storage configuration uses both the default /export and /data mount paths. See First Steps above for more information.
Configure the storage volumes. Accept the default value in Mount Path under MinIO Export Storage (Data), and leave Type set to ixVolume (Dataset created automatically by the system). This sets the first mount point to /export.
Click Add to the right of Additional Storage. Next set the Mount Path for the data dataset. Enter /data in Mount Path and enter or browse to select the host path to the data dataset.
The TrueNAS MinIO app includes the option to mount an SMB share inside the container pod.
Accept the default values in Resources Configuration or enter new CPU and memory values. By default, this application is limited to use no more than 2 CPU cores and 4096 Megabytes available memory. The application might use considerably less system resources.
To customize the CPU and memory allocated to the container (pod) the app uses, enter new CPU values as a plain integer value (letter suffix is not required). The default is 4096.
Accept the default value 8 (Gb) allocated memory or enter a new limit in bytes. Enter a plain integer without the measurement suffix, for example, 129 not 129M or 123MiB.