MinIO on Linux
MinIO is an S3-compatible object storage solution that our system supports. However, MinIO is not included with our software and must be installed separately by the user.
Find out more about minIO here.
Disclaimer
- We do not distribute MinIO with our software.
- We do not modify MinIO or provide a customized version.
- Users are responsible for setting up and maintaining their MinIO installation.
Licensing
MinIO is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
If you modify and distribute MinIO, or provide it as a service over a network, you must comply with the AGPLv3 license terms.
For more details, see the official MinIO license information:
MinIO License
1. Download
Get the latest MinIO pkg file by running command:
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240628090649.0.0_amd64.deb -O minio.deb
2. Install
Install the downloaded package:
sudo dpkg -i minio.deb
3. Create user and group
Create user and group for MinIO
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
4. Create folder for MinIO data
Create folder for MinIO data
mkdir /mnt/minioDisk
chown minio-user:minio-user /mnt/minioDisk
5. Create the Environment Variable File
Create an environment variable file at /etc/default/minio
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment
MINIO_ROOT_USER=minio-user
MINIO_ROOT_PASSWORD=minio-user-password
# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.
MINIO_VOLUMES="/mnt/minioDisk"
# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9001"
6. Create the minio.service file
Create a minio.service file at /usr/lib/systemd/system directory.
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
7. Start minio service
Start MinIO service:
sudo systemctl start minio.service
8. Check MinIO status
Check MinIO status:
sudo systemctl status minio.service
journalctl -f -u minio.service
9. Set MinIO service to start automatically
Set MinIO service to start automatically as part of the host boot:
sudo systemctl enable minio.service
In our example we installed minIO on Port 9001, so we have to go to http://<Serverdomain>:9001. If you see the MinIO console in the browser, it means that everything is working well and we can continue with the next steps.
General Documentation
Check the general documentation for a detailed explanation:
MinIO for Linux
Next Steps
In order for the server to properly communicate with our priint::suite we still need to configure the integration.
Configuration of object storage SDK and rendering worker service
Documentation about the configuration of object storage SDK and rendering worker service can be found here:
Configuration of Object Storage
Setting up your first bucket
Documentation setting up the first bucket can be found here:
Using Object Storage in project