MinIO

MinIO is an open source object storage server, compatible with Amazon S3 written in go.


Note

For this guide you should be familiar with the basic concepts of

License

MinIO is licensed under Apache-2.0

Prerequisites

Download the latest MinIO binary into your bin folder and make it executable:

[isabell@stardust ~]$ wget https://dl.min.io/server/minio/release/linux-amd64/minio -O ~/bin/minio
[isabell@stardust ~]$ chmod +x ~/bin/minio
[isabell@stardust ~]$

Create a folder for your data:

[isabell@stardust ~]$ mkdir minio
[isabell@stardust ~]$

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$

Note

MinIO default port is 9000

Setup config

Run Minio once to get the master AccessKey and SecretKey:

[isabell@stardust ~]$ minio server ~/minio
[...]
AccessKey: 2MN0QSZJS104ROKHYKNC
SecretKey: rozZqplprT+PZrYb4Mr5GNxeeh+CegYiMBvrvwfD
[...]
[isabell@stardust ~]$

Note

The AccessKey and the SecretKey are generated randomly. You can also find the keys in the MinIO config. The config file is located in the folder ~/minio/.minio.sys/config/config.json

You can set your own AccessKey and SecretKey via ENVIROMENT VARIABLES:

[isabell@stardust ~]$ export MINIO_ACCESS_KEY=minio
[isabell@stardust ~]$ export MINIO_SECRET_KEY=miniostorage
[isabell@stardust ~]$

Setup Supervisord

Create the configuration ~/etc/services.d/minio.ini:

[program:minio]
command=minio server %(ENV_HOME)s/minio
autostart=yes
autorestart=yes

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

MinIO Flags

[isabell@stardust ~]$ minio server
[...]
FLAGS:
--address value               bind to a specific ADDRESS:PORT, ADDRESS can be an IP or hostname (default: ":9000")
--config-dir value, -C value  [DEPRECATED] path to legacy configuration directory (default: "/home/isabell/.minio")
--certs-dir value, -S value   path to certs directory (default: "/home/isabell/.minio/certs")
--quiet                       disable startup information
--anonymous                   hide sensitive information from logging
--json                        output server logs and startup information in json format
--compat                      trade off performance for S3 compatibility
--help, -h                    show help
[...]
[isabell@stardust ~]$

Test MinIO

Open the url you set for MinIO. On the webpage you can login with the AccessKey and SecretKey. You can disable the webpage with the ENVIROMENT VARIABLES MINIO_BROWSER=OFF.

Clients

The devs of MinIO provide a minio client. But you can use every S3 compatible client or library.

Updates

Just stop MinIO and replace the old binary with the newer one:

[isabell@stardust ~]$ supervisorctl stop minio
[isabell@stardust ~]$ wget https://dl.min.io/server/minio/release/linux-amd64/minio -O ~/bin/minio
[isabell@stardust ~]$ chmod +x ~/bin/minio
[isabell@stardust ~]$ supervisorctl start minio
[isabell@stardust ~]$

MinIO docs

Official MinIO Docs: https://docs.min.io


Written by: Marius Bertram <marius@brtrm.de>