LinuxCommandLibrary

minio-server

Start MinIO object storage server

TLDR

Start a server using the default configuration

$ minio server [path/to/data_directory]
copy

Start a server binding to a different port for the API and web console
$ minio server --address ":[port]" --console-address ":[port]" [path/to/data_directory]
copy

Start a server as part of a cluster of 2 nodes
$ minio server [node1_hostname] [path/to/data_directory] [node2_hostname] [path/to/data_directory]
copy

SYNOPSIS

minio server [OPTIONS] PATH [PATH...]

PARAMETERS

--address <ADDR>
    Specifies the listen address for the MinIO server's S3 API. Defaults to ':9000'. Examples: '127.0.0.1:9000', ':9000'.

--certs-dir <DIR>
    Sets the directory containing TLS certificates and private keys for secure (HTTPS) communication.

--console-address <ADDR>
    Specifies the listen address for the MinIO Console (web UI). Defaults to ':9001'. Can be set to 'off' to disable the console.

--config-dir <DIR>
    Defines the directory where MinIO stores its configuration files and internal data.

--json
    Outputs server log messages in JSON format, which is useful for structured logging and automated parsing.

--logger-address <ADDR>
    Sends server log messages to a remote syslog server at the specified address.

--anonymous
    Disables authentication, allowing anonymous access to buckets and objects. Use with extreme caution and only in secure, controlled environments.

--rewire <ADDR>
    Used internally by MinIO to redirect API requests within a distributed setup for consistent hashing. Not typically configured by users directly.

--quiet
    Suppresses informational messages, showing only warnings and errors in the server output.

--version
    Prints the MinIO server version and exits.

--help
    Displays the help message for the 'minio server' command and exits.

DESCRIPTION

MinIO is an open-source, high-performance, S3-compatible object storage server designed for cloud-native applications.

It provides an API compatible with Amazon S3, allowing developers and applications to store and retrieve large amounts of unstructured data. MinIO focuses on scalability, performance, and simplicity, making it ideal for various use cases including data lakes, AI/ML workloads, analytics, and backup/restore solutions. It can run on a single server for local development or in a highly distributed cluster for enterprise-grade deployments, offering strong consistency and data durability.

CAVEATS

When starting MinIO, it is critical to set the environment variables MINIO_ROOT_USER and MINIO_ROOT_PASSWORD for initial root access. If these are not provided, MinIO will generate random credentials and print them to the console (unless --quiet is used).

The PATH arguments specify the local directories or mount points where MinIO stores its data. For distributed deployments, these paths must be consistent across all server instances participating in the cluster. Changing data paths after initialization can lead to data loss or corruption.

Always prioritize security: configure TLS/SSL, manage access keys and policies diligently, and implement robust network security measures to protect your object storage from unauthorized access.

ENVIRONMENT VARIABLES

MinIO extensively uses environment variables for configuration. Key variables include:
MINIO_ROOT_USER: The access key for the root user. This is mandatory for secure access.
MINIO_ROOT_PASSWORD: The secret key for the root user. Also mandatory.
MINIO_SERVER_URL: The public endpoint URL for the MinIO server (e.g., `https://minio.example.com`). This is crucial for distributed setups and client connectivity.
MINIO_BROWSER: Set to 'on' (default) or 'off' to enable or disable the built-in MinIO Console (web UI).

DEPLOYMENT MODES

MinIO can be deployed in two primary modes:
1. Standalone Mode: Running on a single server with one or more local drives specified as PATH arguments.
2. Distributed Mode: Spanning multiple servers (nodes), providing high availability, scalability, and data protection through erasure coding. In distributed mode, the server command is run on each node, specifying all data drives across the cluster using a specific URL format (e.g., `minio server http://minio{1...4}/export{1...4}`).

MINIO CONSOLE

The MinIO server includes a built-in web-based user interface, the MinIO Console, accessible by default on port :9001 (e.g., `http://localhost:9001` or `https://localhost:9001` if TLS is configured). This console allows for graphical management of buckets, objects, users, and policies, providing an intuitive way to interact with your MinIO instance.

HISTORY

MinIO was first released in 2014 as an open-source project, quickly gaining traction as a high-performance, S3-compatible object storage solution. Its development has consistently focused on simplicity, scalability, and performance, making it a preferred choice for cloud-native applications, AI/ML, analytics, and containerized environments. It evolved to support distributed deployments, erasure coding for data protection, and a rich set of features aligned with modern data infrastructure needs, becoming a leading object storage solution for private and hybrid clouds.

SEE ALSO

mc(1), s3cmd(1), aws(1)

Copied to clipboard