Minio

Introduction

Minio is an object storage server built for cloud applications and DevOps. Minio is S3 compatible and provides an open-source alternative to AWS S3. You can download and install Minio pretty quickly. Minio also provides an official Docker image. For further details, check out Minio documentation website.

AccessKey and SecretKey

Once you install and deploy Minio server, you can get the AccessKey and SecretKey from the startup message.

2017-01-24T19:53:21.141689279Z
2017-01-24T19:53:21.141730078Z Endpoint:  http://172.17.0.2:9000  http://127.0.0.1:9000
2017-01-24T19:53:21.141735582Z AccessKey: 5fD3434325fDaGE77BNJlSoV1xGp
2017-01-24T19:53:21.141738933Z SecretKey: Quie2teech4oofoo9Dahsoo7aithauja
2017-01-24T19:53:21.141742292Z Region:    us-east-1
2017-01-24T19:53:21.141745405Z SQS ARNs:  <none>
2017-01-24T19:53:21.141749472Z
2017-01-24T19:53:21.141752499Z Browser Access:
2017-01-24T19:53:21.141755711Z    http://172.17.0.2:9000  http://127.0.0.1:9000
2017-01-24T19:53:21.141758830Z
2017-01-24T19:53:21.141762000Z Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
2017-01-24T19:53:21.141765638Z    $ mc config host add myminio http://172.17.0.2:9000 1H2MI5BCU45990DZ3WRL flJlSoV1xGp+u2fhfDaGE77BNE6OdyvAsdI15kPq
2017-01-24T19:53:21.141768751Z
2017-01-24T19:53:21.141771631Z Object API (Amazon S3 compatible):
2017-01-24T19:53:21.141774638Z    Go:         https://docs.minio.io/docs/golang-client-quickstart-guide
2017-01-24T19:53:21.142003548Z    Java:       https://docs.minio.io/docs/java-client-quickstart-guide
2017-01-24T19:53:21.142019474Z    Python:     https://docs.minio.io/docs/python-client-quickstart-guide
2017-01-24T19:53:21.142024004Z    JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
2017-01-24T19:53:21.142027614Z
2017-01-24T19:53:21.142030994Z Drive Capacity: 262 GiB Free, 303 GiB Total

To override Minio auto-generated keys, you may explicitly pass secret and access keys as environment variables. Find more details on the Minio docs.

Setup Rocket.Chat to use Minio

To set up Minio as the file storage server in Rocket.Chat, go to File Uploads section under Administration, then set Storage Type: GridFS (default) to AmazonS3. Next, access the AmazonS3 menu and update the following details:

Configuration Name

Description

Bucket name

Minio Bucket Name

Access Key

Minio server Access Key

Secret Key

Minio server Secret Access Key

Region

us-east-1

Bucket URL

http://[your.minio.domain/bucketname]

Signature Version

v2 (This may not be needed if using ssl)

Force Path Style

true (this may not be needed if using ssl)

URLs expiration timespan

0 (if you want your files to never expire)

Set up production environment

In production, you can use a reverse proxy with Minio server. You can also secure access to Minio server with TLS. Find out more on the Minio documentation.

Note: If you specify a different region in Minio, ensure it is the same as the S3 region. Check the complete regions list.