Minio container is ready

There are minio containers out there but non of them are for armv7 so I took the time to build a compressed minio container.
The binaries are compessed with upx and are more or less 30% compressed. ie 30MB compared to 90MB.
The container includes both minio and mc (client).

If you don’t know what minio is then it’s a S3 compatible storage service.
It is composed of buckets and is being used on many ENTERPRISE appliances and systems around the world to store and share data between clients/users/servers/scripts etc..
It can be used to store RouterOS backup/exports/support.rif and many other things.
It can also be used for provisioning of scripts, settings, branding etc.
It can easily store TBs of files(depends on the storage backend and hardware..)

Couple examples are:

  • Firewall rules
  • Firewall address-lists
  • DHCP Leases
  • ppp/vpn users
  • routes
  • queues
  • logging
    etc..

The sources for the container build are at:
https://github.com/elico/minio-container

And if you want to install the container you can use the next commands:

/interface/bridge/add name=dockers
/ip/address/add address=172.20.0.254/24 interface=dockers

/interface/veth/add name=veth90 address=172.20.0.90/24 gateway=172.20.0.254
/interface/bridge/port add bridge=dockers interface=veth90

/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/pull

/container/envs/add name=minio_envs key=TZ value="Asia/Jerusalem"
/container/envs/add name=minio_envs key=MINIO_ROOT_USER value="61accd06-4910-4af3-83ee-9f6505042c68"
/container/envs/add name=minio_envs key=MINIO_ROOT_PASSWORD value="fa2314a5-9819-412e-bbf3-14e5d4e5dcc4"
/container/envs/add name=minio_envs key=MINIO_SERVER_ADDRESS value="172.20.0.90"
/container/envs/add name=minio_envs key=MINIO_SERVER_DOMAIN value="172.20.0.90"
/container/envs/add name=minio_envs key=MINIO_SERVER_URL value="http://172.20.0.90:9000"

/container mounts add dst=/data name=minio_data src=/disk1/minio_data

/container/add mounts=minio_data dns=172.20.0.254 remote-image=elicro/minio:latest interface=veth90 root-dir=disk1/minio envlist=minio_envs start-on-boot=yes

Pay attention to change the root user and password accordingly.
To access minio you can get into: http://172.17.0.90:9000
It will redirect you to port 9001 which is the web management console.
Pay attention to the variables:

/container/envs/add name=minio_envs key=MINIO_SERVER_ADDRESS value="172.20.0.90"
/container/envs/add name=minio_envs key=MINIO_SERVER_DOMAIN value="172.20.0.90"
/container/envs/add name=minio_envs key=MINIO_SERVER_URL value="http://172.20.0.90:9000"

The startup script will bind the minio server only to the MINIO_SERVER_ADDRESS and will add an hosts record of the MINIO_SERVER_ADDRESS to the MINIO_SERVER_DOMAIN .
The MINIO_SERVER_URL is what will be used when you create a “share” link from the console and this is a part of the signature of the sharing url. So if you will have a share url for a file it will start with:
http://172.20.0.90:9000/xyz

and if you will change it to:
http://domain-whatever:9000/xyz

it will not work and minio will tell you that the signature doesn’t match and there for the access to the shared file will be denied.

Hi, thanks for the container!
How much memory is needed to start and run this container?
Is it possible to run it on hap ax3? (with 1 GB RAM, 650 MB free)

Thanks, this will be especially useful very soon :slight_smile:
Edit:
https://help.mikrotik.com/docs/display/ROS/ROSE-storage

  1. RouterOS Enterprise package will be available for hAP ax^3 ?
  2. Will it be a paid package?

Free package, available for arm,arm64,Tile and x86

username and password are not working..

It is possible to run it on hap ax3 but I recommend to use an external USB storage and not the internal one.

Thank you very much for the answer! That’s exactly what I planned to do!
To begin with, I decided to test the functionality on CHR, but I could not start the container.
I wrote about this issue in github here: https://github.com/elico/minio-container/issues/1

Can you tell me what could be the problem?

Can someone help solve this problem with starting MinIO?

Hi!
I also wanted to clarify a few questions about the ROSE storage package.

  1. Does SAMBA support the “seal” command when mounting? (for encryption)
  2. Supports SAMBA / NFS authorization for multiple users with their own directories?
  3. “Currently RouterOS supports SED (Self-encrypting drives) and dm_crypt drive encryption.”
    Please tell me how to use dm_crypt?

I’m curoius why do you want to change your router into a tool like this?

SMB/NFS/RAID/encryption/Authorization … then maybe PiHole/extraDNS/monitoring … do you think that CPU would be strong enough to carry all that tasks?
Let the router be a router !
Buy proper devices for particular tasks. If something breaks than you do not loose all your data/conectivity but only the broken one.

Too funny :laughing:
In all seriousness, this is exactly what I am thinking as well the past 2 weeks.

I have Docker containers running on a NAS (nothing fancy, PiHole and iperf3 server) but am looking for other possible things.
Then I was thinking about moving them towards the router (main reason: to see how it works and what I can learn from it).
And then I asked myself: why would I do that ?