Minio container is ready
Posted: Thu Nov 17, 2022 6:06 pm
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:
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:
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.
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:
Code: Select all
/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
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:
Code: Select all
/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 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.