MinIO Server
MinIO Server
The minio server command starts the MinIO server process:
minio server /mnt/disk{1...4}
For examples of deploying minio server on a bare metal environment, see Install and Deploy MinIO.
For examples of deploying minio server on a Kubernetes environment, see Deploying a MinIO Tenant.
AGPLv3
minio server is AGPLv3 licensed Free and Open Source (FOSS) software.
Applications integrating mc may trigger AGPLv3 compliance requirements. MinIO Commercial Licensing is the best option for applications which trigger AGPLv3 obligations where open-sourcing the application is not an option.
Syntax
Starts the minio server process.
The command has the following syntax:
minio server [FLAGS] HOSTNAME/DIRECTORIES [HOSTNAME/DIRECTORIES..]
The command accepts the following arguments:
- HOSTNAME
The hostname of a
minio serverprocess.For standalone deployments, this field is optional. You can start a standalone
serverprocess with only theDIRECTORIESargument.For distributed deployments, specify the hostname of each
minio serverin the deployment. The group ofminio serverprocesses represent a single Server Pool.HOSTNAMEsupports MinIO expansion notation{x...y}to denote a sequential series of hostnames. MinIO requires sequential hostnames to identify eachminio serverprocess in the set.For example,
https://minio{1...4}.example.netexpands to:https://minio1.example.nethttps://minio2.example.nethttps://minio3.example.nethttps://minio4.example.net
You must run the
minio servercommand with the same combination ofHOSTNAMEandDIRECTORIESon each host in the Server Pool.Each additional
HOSTNAME/DIRECTORIESpair denotes an additional Server Set for the purpose of horizontal expansion of the MinIO deployment. For more information on Server Pools, see Server Pool.
- DIRECTORIES
- Required
The directories or drives the
minio serverprocess uses as the storage backend.DIRECTORIESsupports MinIO 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
DIRECTORIESpath(s) must be empty when first starting theminioprocess.The
minio serverprocess requires at least 4 drives or directories to enable erasure coding.Important
MinIO recommends locally-attached drives, where the
DIRECTORIESpath points to each drive on the host machine. MinIO recommends against using network-attached storage, as network latency reduces performance of those drives compared to 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, MinIO does not recommend using multiple logical directories or partitions on a single physical disk. While MinIO supports those configurations, the potential cost savings come at the risk of decreased reliability.
- --address
- Optional
Binds the
minioserver process to a specific network address and port number. Specify the address and port asADDRESS:PORT, whereADDRESSis an IP address or hostname andPORTis a valid and open port on the host system.To change the port number for all IP addresses or hostnames configured on the host machine, specify
:PORTwherePORTis a valid and open port on the host.Changed in version RELEASE.2023-01-02T09-40-09Z: You can configure your hosts file to have MinIO only listen on specific IPs. For example, if the machine’s /etc/hosts file contains the following:
127.0.1.1 minioip 127.0.1.2 minioip
A command like the following would listen for API calls on port
9000on both configured IP addresses.minio server --address "minioip:9000" ~/miniodirectoryIf omitted,
miniobinds to port9000on all configured IP addresses or hostnames on the host machine.
- --console-address
- 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
- 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-keyandtls-public-keyto direct MinIO to use the default TLS keys for the MinIO deployment. See Network Encryption (TLS) for more information. You only need to specify a certificate and private key to a different set of TLS certificate and key than the MinIO default (for example, to use a different domain).For example:
minio server http://server{1...4}/disk{1...4} \ --ftp="address=:8021" \ --ftp="passive-port-range=30000-40000" \ --ftp="tls-private-key=path/to/private.key" \ --ftp="tls-public-cert=path/to/public.crt" \ ...
- --sftp
- Optional
Enable and configure a SSH File Transfer Protocol (
SFTP) server. Use multiple times to specify an address port and the path to the ssh private key to use as key-value pairs.Valid keys:
address, which takes a single port to use for the server, typically8022ssh-private-key, which takes the path to the user’s private key file
For example:
minio server http://server{1...4}/disk{1...4} \ --sftp="address=:8022" --sftp="ssh-private-key=/home/miniouser/.ssh/id_rsa" \ ...
- --certs-dir, -S
- Optional
Specifies the path to the folder containing certificates the
minioprocess uses for configuring TLS/SSL connectivity.Omit to use the default directory paths:
Linux/OSX:
${HOME}/.minio/certsWindows:
%%USERPROFILE%%\.minio\certs.
See Network Encryption (TLS) for more information on TLS/SSL connectivity.
Settings
You can perform additional customizations to the MinIO Server process by defining 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.