MinIO
Installing MinIO on SME
General Notes
Just some notes on the basics of installing MinIO
This could be used with your own instance of say [RClone](https://wiki.contribs.org/Rclone) or Rocket.Chat
Documentation here:
https://min.io/download#/linux
https://docs.min.io/docs/minio-quickstart-guide.html
https://docs.min.io/docs/minio-server-configuration-guide.html
Followed notes from here https://www.centosblog.com/install-configure-minio-object-storage-server-centos-linux/
Install Minio on SME v9
"In this example, we’ll install Minio to /opt/minio, and [won't] configure it to run as a (systemd) service."
Add a minio user [This is not the standard SME way but just for testing]
useradd -s /sbin/nologin -d /opt/minio minio
Set up directories
mkdir -p /opt/minio/bin mkdir /opt/minio/data # this will be your data partition
Install minio server binary and set it to executable. In this example we use the Linux x64 binary.
wget https://dl.minio.io/server/minio/release/linux-amd64/minio -O /opt/minio/bin/minio chmod +x /opt/minio/bin/minio
Ensure all files are owned by minio in /opt/minio:
chown -R minio:minio /opt/minio
Start MinIO
Start it manually so you can get the Keys that you will require.
This will start on all interfaces:
/opt/minio/bin/minio server /opt/minio/data
This will limit it to one interface:
/opt/minio/bin/minio server --address 1.2.3.4:9000 /opt/minio/data
Once you have the keys you can then follow the instructions for Automated Service below.
Note this only runs on http. It could run https but for EXTERNAL access but you need to set it up with certs (see docs) It is recommended to run a reverse proxy and use the general server SSL certs
Make sure you keep a note of the AccessKey and SecretKey when you start the first time
You can access the server via http://1.2.3.4:9000
Other options
/opt/minio/bin/minio --help
MinIO configuration client and commands
Be CAREFUL as you have mc - midnight commander installed !!!!!
https://github.com/minio/mc/blob/master/docs/minio-admin-complete-guide.md https://docs.min.io/docs/minio-client-quickstart-guide
wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /opt/minio/bin/mc chmod +x /opt/minio/bin/mc /opt/minio/bin/mc --help
Add a location for your server:
/opt/minio/bin/mc config host add minio http://192.168.1.1:9000 <ACCESS KEY> <SECRET KEY>
Run a command:
/opt/minio/bin/mc admin info server minio
/opt/minio/bin/mc ls minio [2019-10-16 16:54:53 CEST] 0B bucket1/
Help:
/opt/minio/bin/mc -h
This can enable tracing for issues, modify configuration etc
Automated startup
Init scripts that don't work on SME - note there is a Unit file for systemd
git clone https://github.com/minio/minio-service.git
Initscript borrowed from here:
https://github.com/fhd/init-script-template/blob/master/template
#!/bin/sh ### BEGIN INIT INFO # Provides: # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO # dir not used here # dir="/opt/minio" # cmd is the whole command - it could be templated break it down in to bits # add your own details etc etc # Change the IP address to your local one cmd="/opt/minio/bin/minio server --address 192.168.1.1:9000 /opt/minio/data" # user="" name=`basename $0` pid_file="/var/run/$name.pid" stdout_log="/var/log/$name.log" stderr_log="/var/log/$name.err" get_pid() { cat "$pid_file" } is_running() { [ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1 } case "$1" in start) if is_running; then echo "Already started" else echo "Starting $name" cd "$dir" $cmd >> "$stdout_log" 2>> "$stderr_log" & echo $! > "$pid_file" if ! is_running; then echo "Unable to start, see $stdout_log and $stderr_log" exit 1 fi fi ;; stop) if is_running; then echo -n "Stopping $name.." kill `get_pid` for i in 1 2 3 4 5 6 7 8 9 10 # for i in `seq 10` do if ! is_running; then break fi echo -n "." sleep 1 done echo if is_running; then echo "Not stopped; may still be shutting down or shutdown may have failed" exit 1 else echo "Stopped" if [ -f "$pid_file" ]; then rm "$pid_file" fi fi else echo "Not running" fi ;; restart) $0 stop if is_running; then echo "Unable to stop, will not attempt to start" exit 1 fi $0 start ;; status) if is_running; then echo "Running" else echo "Stopped" exit 1 fi ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit 0
It would need:
ckkconfig minio on
You can probably link to daemon tool:
ln -s /etc/rc.d/init.d/e-smith-service S85minio
config set minio service status enabled
service minio start|stop|restart|status