MinIo
MinIo - это open-source объектное хранилище, совместимое с Amazon S3 API. Выпускается под лицензией Apache v2. Позволяет организовать собственное облачное хранилище на сервере.
Установка
Пример установки на Ubuntu 24.04.
1. Получаем исходники с сервера MinIo:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
2. Переносим его в директорию на сервере, где он будет располагаться:
mv minio /usr/local/bin/minio
3. Создаем группу и пользователя для MinIo:
groupadd -r minio-user useradd -M -r -g minio-user minio-user
4. Создаем директорию, где будут хранится данные:
mkdir /mnt/data
5. Меняем права и владельцев для директории и бинарного файла:
chmod u+rxw /mnt/ /usr/local/bin/minio chown -R minio-user /mnt/ /usr/local/bin/minio
6. Создаем systemd файл для управления MinIo:
nano /etc/systemd/system/minio.service
и добавляем строки:
[Unit] Description=MinIO High Performance Object Storage Documentation=https://docs.min.io Wants=network-online.target After=network-online.target [Service] User=minio-user Group=minio-user WorkingDirectory=/mnt/data ExecStart=/usr/local/bin/minio server /mnt/data --console-address ":9090" Restart=always RestartSec=5 # Set environment variables Environment=MINIO_ROOT_USER=admin Environment=MINIO_ROOT_PASSWORD=password # Allow MinIO to bind to low ports if needed CapabilityBoundingSet=CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_BIND_SERVICE NoNewPrivileges=true [Install] WantedBy=multi-user.target
В MINIO_ROOT_USER и MINIO_ROOT_PASSWORD придумываете логин и пароль, которые будут использовать для входа в WebUI-панель и для доступа к хранилищу по API.
7. Перезагружаем systemd демонов для применения изменений:
systemctl daemon-reload
8. Запускаем и стартуем сервис MinIo:
systemctl start minio systemctl enable minio
9. Проверяем статус сервиса MinIo:
systemctl status minio
Вывод:
● minio.service - MinIO High Performance Object Storage
Loaded: loaded (/etc/systemd/system/minio.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-07-31 06:25:05 UTC; 2 weeks 5 days ago
Docs: https://docs.min.io
Main PID: 860 (minio)
Tasks: 8 (limit: 2268)
Memory: 338.2M (peak: 580.7M swap: 432.0K swap peak: 432.0K)
CPU: 39min 49.791s
CGroup: /system.slice/minio.service
└─860 /usr/local/bin/minio server /mnt/data --console-address :9090
Вход в MinIO Web UI
Для перехода в панель MinIo используйте IP-адрес вашего сервера и порт, который был указан в п.6 в параметре --console-address ":9090"
http://your-server-ip:9000
Вы должны увидеть страницу для входа:

Логин и пароль был задан в п.6 при настройке MinIo.
После авторизации необходимо выбрать в левом меню "Create Bucket" и назвать бакет. Например, hostcms.
Настройка CDN
Пример указания настроек бакета в модуле CDN

Во вкладке Настройки необходимо снять все флажки, кроме Активность и По-умолчанию.
Настройка nginx для доступа к MinIo WebUI
Для того чтобы не обращаться к панели через IP-адрес можно настроить обращение через поддомен. Необходимо на хостинге создать поддомен основного сайта, например, minio.mysite.ru и внести изменения в конфиг nginx:
server {
listen 80;
server_name minio.mysite.ru;
client_max_body_size 1G;
location / {
proxy_set_header Host $http_host;
proxy_pass http://minio.mysite.ru:9000;
}
}
Обратите внимание, что порт должен быть именно 9000. Именно на нем работает сам сервис MinIo.
Далее перезапускаем nginx:
sudo service nginx restart
После этого можем обращаться к http://minio.mysite.ru для доступа к панели MinIo WebUI
Смена типа бакета
Стандартно бакет создается с типом PRIVATE. Для того чтобы переключить его в PUBLIC необходимо:
1. Установить консоль MinIo по инструкции по ссылке:
https://docs.min.io/community/minio-object-store/reference/minio-mc.html#command-mc
Далее сделать alias для хранилища:
mc alias set myminio http://minio.mysite.ru:9000 LOGIN PASSWORD
где вместо LOGIN PASSWORD указываете логин и пароль, которые были заданы в п.6 при настройке MinIo.
После меняем тип бакета:
mc anonymous set public myminio/mybacket
вместо mybacket указывается название бакета.