#!/usr/bin/env bash set -e echo "[DEBUG] Run script started" CONFIG="/data/options.json" # Extract config values from the JSON file # The file is created by the Home Assistant Add-on system # and contains the configuration options defined in the add-on config.json file # The jq command is used to parse the JSON file and extract the values # the drive variable is used to specify the location of the MinIO data directory inside /data ACCESS_KEY=$(jq -r .access_key "$CONFIG") SECRET_KEY=$(jq -r .secret_key "$CONFIG") DRIVE=$(jq -r .drive "$CONFIG") # Configure MinIO environment variables # These variables are used to set up the MinIO server # The ACCESS_KEY and SECRET_KEY are used for authentication export MINIO_ROOT_USER="$ACCESS_KEY" export MINIO_ROOT_PASSWORD="$SECRET_KEY" # Check if the bucket exists, if not create it DATA_DIR="/data/$DRIVE" mkdir -p /data echo "[INFO] Starting MinIO (user: $MINIO_ROOT_USER)" # Autodetect if TLS certs are present # If they are, launch with HTTPS, otherwise use HTTP # This is a workaround for the fact that the minio server command does not have a --tls flag if [[ -f /ssl/cert.pem && -f /ssl/key.pem ]]; then echo "[INFO] TLS cert found, launching HTTPS" exec minio server "$DATA_DIR" \ --address ":9000" \ --console-address ":9001" \ --certs-dir /ssl else echo "[INFO] Launching HTTP" exec minio server "$DATA_DIR" \ --address ":9000" \ --console-address ":9001" fi