.. _minio-software-checklists:
==================
Software Checklist
==================
.. default-domain:: minio
.. contents:: Table of Contents
:local:
:depth: 2
Use the following checklist when planning the software configuration for a production, distributed MinIO deployment.
MinIO Pre-requisites
--------------------
.. list-table::
:widths: auto
:width: 100%
* - :octicon:`circle`
- Servers running a Linux operating system with a 5.x+ kernel, such as Red Hat Enterprise Linux (RHEL) 9 or Ubuntu LTS 20.04+
* - :octicon:`circle`
- A method to synchronize time servers across nodes, such as with ``ntp``, ``timedatectl`` or ``timesyncd``.
The method to use varies by operating system.
Check with your operating system's documentation for how to synchronize time with a time server.
* - :octicon:`circle`
- Disable system services that index, scan, or audit the filesystem, system-level calls, or kernel-level calls (``mlocate``, ``auditd``).
These services can reduce performance due to resource contention or interception of MinIO operations.
You can alternatively configure these services to ignore or exclude MinIO directories and processes.
* - :octicon:`circle`
- System administrator access to the remote servers
* - :octicon:`circle`
- A management tool for distributed systems, such as Ansible, Terraform, or Kubernetes for orchestrated environments.
Kubernetes infrastructures should use the MinIO Operator for best results.
* - :octicon:`circle`
- Load balancer to handle routing of requests (for example, `NGINX `__)
* - :octicon:`circle`
- :ref:`Prometheus ` or a Prometheus-compatible setup for monitoring and metrics
* - :octicon:`circle`
- :ref:`Grafana configured ` for dashboards
* - :octicon:`circle`
- (optional) :mc:`mc` installed on the local host system
MinIO Install
-------------
Install the MinIO server binary across all nodes, ensuring that each node uses the same version of that binary.
.. cond:: linux
See the :ref:`Multi Node Multi Drive deployment guide ` for more information.
.. cond:: container or macos or windows
See the :ref:`Single Node Single Drive deployment guide ` for more information.
.. cond:: k8s
See the :ref:`Deploy MinIO Operator ` and :ref:`Minio Tenant deployment guide ` for more information.
Post Install Tasks
------------------
.. list-table::
:widths: auto
:width: 100%
* - :octicon:`circle`
- (optional) Create an :mc:`mc alias` for each server with :mc:`mc alias set` from your local machine for command line access to work with the MinIO deployment from a local machine
* - :octicon:`circle`
- Configure :ref:`Bucket replication ` to duplicate contents of a bucket to another bucket location
* - :octicon:`circle`
- Configure :ref:`Site replication ` to synchronize contents of multiple dispersed data center locations
* - :octicon:`circle`
- Configure :ref:`Object retention rules with lifecycle management ` to manage when objects should expire
* - :octicon:`circle`
- Configure :ref:`Object storage level rules with tiering ` to move objects between hot, warm, and cold storage and maximize storage cost efficiencies
3rd Party Identity Provider Tasks
---------------------------------
.. list-table::
:widths: auto
:width: 100%
* - :octicon:`circle`
- | Authenticate to MinIO with :ref:`Security Token Service (STS) `
| Enabling this requires MinIO support.