 
		MinIO представляет собой свободную реализацию S3-хранилища с открытым исходным кодом, которая предназначена для установки на собственном сервере. Продукт полностью совместим с API Amazon S3 и не требует использования облачных сервисов. Кроме того, работающий на собственном или арендованном ресурсе, MinIO обеспечивает полный контроль над хранящимися на сервере данными. Высокая производительность, простота установки и поддержка стандартных протоколов делают MinIO эффективным решением как для корпоративных, так и для индивидуальных пользователей.
В статье разберём, как установить и настроить S3-хранилище при помощи MinIO на виртуальном выделенном сервере, работающем под управлением операционной системы Debian 12.
Как настроить S3-хранилище при помощи MinIO на Debian 12
Для загрузки бинарного файла MinIO с официальной страницы релизов потребуется утилита wget, которая изначально отсутствует в образе Debian 12. Поэтому, во-первых, установите данную утилиту при помощи пакетного менеджера APT:
$ sudo apt install wget
Для загрузки бинарного файла MinIO перейдите в домашний каталог:
$ cd ~
Затем, используя утилиту wget, запустите загрузку файла:
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio
Следующей командой в директории /opt/ создайте рабочий каталог MinIO, а также директорию для конфигурационных файлов внутри него и каталог, который будет использоваться для хранения объектов:
$ sudo mkdir -p /opt/minio/{data,config}
В созданный рабочий каталог MinIO переместите загруженный бинарный файл:
$ sudo mv minio /opt/minio/
После чего сделайте бинарный файл исполняемым:
$ sudo chmod +x /opt/minio/minio
В конфигурационном каталоге создайте файл окружения. В нём будут находиться настройки, задаваемые при помощи переменных окружения.
$ sudo nano /opt/minio/config/minio.env
Скопируйте в файл следующие строки:
MINIO_ROOT_USER=minio_user
MINIO_ROOT_PASSWORD=MinIO_P@ssw0rd
MINIO_VOLUMES="/opt/minio/data"
MINIO_OPTS="--console-address :9001"Конкретно здесь:
- MINIO_ROOT_USER– параметр, содержащий логин административной учётной записи веб-панели MinIO;
- MINIO_ROOT_PASSWORD– параметр, содержащий пароль этой учётной записи;
- MINIO_VOLUMES– параметр, содержащий полный путь к каталогу, который будет использоваться для хранения данных;
- MINIO_OPTS– параметр, содержащий дополнительные опции запуска MinIO (в данном случае – это номер порта, через который будет доступна веб-панель).
По окончании редактирования закройте файл с сохранением внесённых изменений.
Как настроить работу MinIO в качестве системной службы
Чтобы настраиваемое S3-хранилище было доступно всегда, необходимо обеспечить работу MinIO в качестве системной службы. Для этого на данном этапе создайте в системе новую учётную запись. Под её именем будет работать служба MinIO.
$ sudo useradd --system --no-create-home --shell /usr/sbin/nologin minio
В данном случае команда useradd содержит следующие параметры:
- --system– параметр, означающий создание именно системной учётной записи, предназначенной для работы со службами и демонами;
- --no-create-home– параметр, который позволяет не создавать домашний каталог для нового пользователя;
- --shell /usr/sbin/nologin– опция, которая означает, что новому пользователю будет запрещено интерактивное подключение к системе;
- minio– имя новой учётной записи.
После создания нового пользователя необходимо дать полные права на чтение, запись и выполнение на файлы и директории внутри рабочего каталога MinIO. Для чего смените владельца этих файлов и директорий на пользователя и группу minio:
$ sudo chown -R minio:minio /opt/minio
Создание в системе новой службы фактически заключается в создании юнит-файла, в котором описаны основные её настройки. Поэтому следующей командой создайте юнит-файл для службы MinIO:
$ sudo nano /etc/systemd/system/minio.service
В файл скопируйте следующий текст:
[Unit]
Description=MinIO Object Store
Wants=network-online.target
After=network-online.target
[Service]
User=minio
Group=minio
EnvironmentFile=/opt/minio/config/minio.env
ExecStart=/opt/minio/minio server $MINIO_VOLUMES $MINIO_OPTS
Restart=always
LimitNOFILE=65536
ProtectHome=yes
ProtectSystem=full
PrivateTmp=yes
[Install]
WantedBy=multi-user.targetСохраните изменения, закройте файл и перезапустите конфигурацию системы инициализации:
$ sudo systemctl daemon-reload
После чего установите новую службу в автозагрузку с одновременным её стартом:
$ sudo systemctl enable --now minio
Чтобы убедиться, что запуск новой службы прошёл успешно, проверьте её текущее состояние:
$ systemctl status minio
Вывод команды не должен содержать каких-либо сообщений об ошибках.

Подключение к веб-панели MinIO
В файле окружения, созданном ранее, указано, что веб-панель должна работать через TCP-порт 9001. Следовательно, чтобы подключиться к веб-панели, необходимо открыть доступ к серверу по порту 9001. Чтобы это сделать, в брандмауэр UFW добавьте разрешающее правило для данного порта:
$ sudo ufw allow 9001/tcp
Затем откройте браузер и попробуйте подключиться к веб-панели по адресу вида http://X.X.X.X:9001. Вместо X.X.X.X используйте IP-адрес вашего VPS.

Для подключения используйте логин и пароль администратора, указанные в файле окружения.
Чтобы получить возможность взаимодействия с MinIO через API, необходимо также открыть доступ к серверу через TCP-порт 9000, используемый для этого по умолчанию:
$ sudo ufw allow 9000/tcp
Поскольку API в MinIO полностью совместим с Amazon S3 API, любые приложения, библиотеки или утилиты, которые умеют работать с S3, например, rclone, s3cmd, mc и другие, могут использоваться для подключения к MinIO без изменений в коде. Таким образом, MinIO можно интегрировать в сторонние системы и сервисы, просто указав адрес хранилища, а также Access Key и Secret Key аналогичные тем, что используются в AWS S3.
 
             
								