Merge pull request #926 from tmunsch/patch-8

Update Minio to include update feature
This commit is contained in:
Michael (Parker) Parker 2021-01-27 06:39:39 -05:00 committed by GitHub
commit aeeb1cebe9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 20 deletions

View File

@ -3,6 +3,8 @@
## Features ## Features
Auto generate keys on server creation bypassing default minio keys Auto generate keys on server creation bypassing default minio keys
## Update
Auto update minio to latest version using "update" startup feature
Automatic Key rotation using "rotate" startup feature Automatic Key rotation using "rotate" startup feature

View File

@ -1,14 +1,17 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-14T05:29:26+02:00", "exported_at": "2021-01-11T15:35:14-05:00",
"name": "Minio S3", "name": "Minio S3",
"author": "accounts@bofanodes.io", "author": "accounts@bofanodes.io",
"description": "MinIO is a cloud storage server compatible with Amazon S3, released under Apache License v2. As an object store, MinIO can store unstructured data such as photos, videos, log files, backups and container images. The maximum size of an object is 5TB.", "description": "MinIO is a cloud storage server compatible with Amazon S3, released under Apache License v2. As an object store, MinIO can store unstructured data such as photos, videos, log files, backups and container images. The maximum size of an object is 5TB.",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", "images": [
"quay.io\/parkervcp\/pterodactyl-images:ubuntu"
],
"startup": ".\/minio.sh", "startup": ".\/minio.sh",
"config": { "config": {
"files": "{}", "files": "{}",
@ -26,12 +29,12 @@
"variables": [ "variables": [
{ {
"name": "Startup Type", "name": "Startup Type",
"description": "normal or rotate", "description": "normal,rotate,update",
"env_variable": "STARTUP_TYPE", "env_variable": "STARTUP_TYPE",
"default_value": "normal", "default_value": "normal",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|string|in:normal,rotate" "rules": "required|string|in:normal,rotate,update"
} }
] ]
} }

View File

@ -1,39 +1,51 @@
#!/bin/bash #!/bin/bash
################################## ##################################
echo Starting up.... echo "$(tput setaf 2)Starting up...."
echo "Startup Type: $STARTUP_TYPE" echo "Startup Type: $(tput setaf 2)$STARTUP_TYPE"
if [ -f "keys/key.txt" ]; then if [ -f "keys/key.txt" ]; then
echo "Key file detected..." echo "$(tput setaf 2)Key file detected..."
export MINIO_ACCESS_KEY=`cat keys/key.txt` export MINIO_ACCESS_KEY=`cat keys/key.txt`
else else
echo minioadmin > keys/key.txt echo minioadmin > keys/key.txt
echo "No key file detected...Preparing First Time Boot" echo "$(tput setaf 3)No key file detected...Preparing First Time Boot"
fi fi
if [ -f "keys/secret.txt" ]; then if [ -f "keys/secret.txt" ]; then
echo "Secret file detected..." echo "$(tput setaf 2)Secret file detected..."
export MINIO_SECRET_KEY=`cat keys/secret.txt` export MINIO_SECRET_KEY=`cat keys/secret.txt`
else else
echo minioadmin > keys/secret.txt echo minioadmin > keys/secret.txt
echo "No secret file detected...Preparing First Time Boot" echo "No secret file detected...Preparing First Time Boot"
fi fi
if [ -f "keys/oldsecret.txt" ]; then if [ -f "keys/oldsecret.txt" ]; then
echo "Old secret file detected..." echo "$(tput setaf 1)Old secret file detected..."
export MINIO_SECRET_KEY_OLD=`cat keys/oldsecret.txt` export MINIO_SECRET_KEY_OLD=`cat keys/oldsecret.txt`
fi fi
if [ -f "keys/oldkey.txt" ]; then if [ -f "keys/oldkey.txt" ]; then
echo "Old key file detected..." echo "$(tput setaf 1)Old key file detected..."
export MINIO_ACCESS_KEY_OLD=`cat keys/oldkey.txt` export MINIO_ACCESS_KEY_OLD=`cat keys/oldkey.txt`
fi fi
if [ -f "keys/justrotated.txt" ]; then if [ -f "keys/justrotated.txt" ]; then
echo "Previous key rotation detected...." echo "$(tput setaf 3)Previous key rotation detected...."
echo "Clearing the Lanes...." echo "$(tput setaf 3)Clearing the Lanes...."
unset MINIO_ACCESS_KEY_OLD unset MINIO_ACCESS_KEY_OLD
unset MINIO_SECRET_KEY_OLD unset MINIO_SECRET_KEY_OLD
echo "$(tput setaf 2)Lanes Cleared!"
STARTUP_TYPE=normal STARTUP_TYPE=normal
rm keys/justrotated.txt rm keys/justrotated.txt
rm keys/oldsecret.txt rm keys/oldsecret.txt
rm keys/oldkey.txt rm keys/oldkey.txt
fi fi
##########################################
if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "update" ]; then
echo "$(tput setaf 3)Performing update...."
echo "$(tput setaf 1)Removing old minio version"
rm minio
echo "$(tput setaf 3)Downloading new minio version"
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
echo "$(tput setaf 2)Update Complete"
fi
########################################## ##########################################
if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "rotate" ]; then if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "rotate" ]; then
touch keys/justrotated.txt touch keys/justrotated.txt
@ -45,12 +57,13 @@ export MINIO_ACCESS_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | h
echo $MINIO_ACCESS_KEY > keys/key.txt echo $MINIO_ACCESS_KEY > keys/key.txt
export MINIO_SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) export MINIO_SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
echo $MINIO_SECRET_KEY > keys/secret.txt echo $MINIO_SECRET_KEY > keys/secret.txt
echo Your New Access Key is: $MINIO_ACCESS_KEY echo "Your New Access Key is: $(tput setaf 2)$MINIO_ACCESS_KEY"
echo Your New Secret Key is: $MINIO_SECRET_KEY echo "Your New Secret Key is: $(tput setaf 2)$MINIO_SECRET_KEY"
echo Your Old Access Key is: $MINIO_ACCESS_KEY_OLD echo "Your Old Access Key is: $(tput setaf 3)$MINIO_ACCESS_KEY_OLD"
echo Your Old Access Key is: $MINIO_SECRET_KEY_OLD echo "Your Old Access Key is: $(tput setaf 3)$MINIO_SECRET_KEY_OLD"
echo Booting... echo "$(tput setaf 2)Booting..."
./minio server data --address 0.0.0.0:$SERVER_PORT ./minio server data --address 0.0.0.0:$SERVER_PORT
else else
echo "$(tput setaf 2)Booting..."
./minio server data --address 0.0.0.0:$SERVER_PORT ./minio server data --address 0.0.0.0:$SERVER_PORT
fi fi