From b9568b610c1c2b94df037f325bb3811faa535562 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 5 May 2025 19:28:53 +0200 Subject: [PATCH] aggiunto minio --- MinIO/Dockerfile | 6 ++++ MinIO/README.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++ MinIO/config.json | 34 ++++++++++++++++++++++ MinIO/icon.png | Bin 0 -> 36803 bytes MinIO/logo.png | Bin 0 -> 5773 bytes MinIO/run.sh | 27 ++++++++++++++++++ 6 files changed, 137 insertions(+) create mode 100644 MinIO/Dockerfile create mode 100644 MinIO/README.md create mode 100644 MinIO/config.json create mode 100644 MinIO/icon.png create mode 100644 MinIO/logo.png create mode 100644 MinIO/run.sh diff --git a/MinIO/Dockerfile b/MinIO/Dockerfile new file mode 100644 index 0000000..02206ea --- /dev/null +++ b/MinIO/Dockerfile @@ -0,0 +1,6 @@ +FROM minio/minio:latest + +COPY run.sh /usr/local/bin/run.sh +RUN chmod +x /usr/local/bin/run.sh + +CMD ["/usr/local/bin/run.sh"] diff --git a/MinIO/README.md b/MinIO/README.md new file mode 100644 index 0000000..867f129 --- /dev/null +++ b/MinIO/README.md @@ -0,0 +1,70 @@ +# MinIO Add-on per Home Assistant + +Questo add-on fornisce un server **S3 compatibile** basato su MinIO, perfetto per: + +- Backup di **Longhorn** +- Archiviazione file/media +- Logging o integrazioni custom + +È stato progettato per essere **production-ready**, sicuro, leggero e accessibile direttamente via pannello laterale di Home Assistant. + +## ⚙️ Configurazione + +```yaml +access_key: admin +secret_key: CHANGEME-strong-password +region: us-east-1 +bucket: longhorn-backup +``` + +## 🌐 Accesso + +Una volta installato, accedi a MinIO tramite il pannello laterale o all'indirizzo: + +`http://:9000` (se Ingress non è disponibile) + +## 🚀 Installazione + +1. Vai su Home Assistant → **Supervisor → Add-on Store** +2. Aggiungi la tua repo Git custom (Settings → Repositories → `https://github.com//minio-addon`) +3. Installa l’add-on, avvia e accedi a MinIO via Ingress + +## 🧾 Requisiti + +- Home Assistant OS o Supervised +- Architettura supportata: `amd64`, `aarch64` +- Accesso a una cartella persistente per `/data` + +## 📂 Struttura del repository + +```bash +minio-addon/ +├── config.json # Definizione dell’add-on +├── Dockerfile # Contenitore MinIO +├── run.sh # Entrypoint con supporto TLS e bucket auto-creation +├── README.md +└── ... +``` + +## 🧠 Note +Il bucket specificato in bucket: viene creato automaticamente se non esiste + +Se usi Longhorn, puoi puntare i backup a: + +```bash +http://:9000/longhorn-backup +``` +Le credenziali vengono passate come variabili d'ambiente in fase di bootstrap + +## 🛡 Sicurezza +> ⚠️ Usa sempre password forti. + +Considera l’attivazione del TLS automatico posizionando i certificati in `/ssl/`. + +## ✅ TODO futuri +- Supporto per versioning bucket +- Healthcheck e metriche Prometheus +- Interfaccia per gestione utenti/bucket via opzioni + +--- +Realizzato con ❤️ per l’automazione e la resilienza. \ No newline at end of file diff --git a/MinIO/config.json b/MinIO/config.json new file mode 100644 index 0000000..1473f42 --- /dev/null +++ b/MinIO/config.json @@ -0,0 +1,34 @@ +{ + "name": "MinIO S3 Server", + "version": "1.0.0", + "slug": "minio", + "description": "Production-ready S3-compatible object storage server for HA and Longhorn", + "arch": ["amd64", "aarch64"], + "startup": "services", + "boot": "auto", + "hassio_api": false, + "host_network": false, + "panel_icon": "mdi:database", + "panel_title": "MinIO", + "ingress": true, + "ingress_port": 9001, + "ingress_stream": false, + "ports": { + "9000/tcp": 9000, + "9001/tcp": 9001 + }, + "map": ["config:rw", "ssl:rw"], + "options": { + "access_key": "admin", + "secret_key": "CHANGEME-strong-password", + "region": "us-east-1", + "bucket": "longhorn-backup" + }, + "schema": { + "access_key": "str", + "secret_key": "str", + "region": "str", + "bucket": "str" + }, + "image": "docker.io/minio/minio:latest" +} diff --git a/MinIO/icon.png b/MinIO/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b32be9ed6ec6712b5542da1344d6946b955c47 GIT binary patch literal 36803 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 b`4ISjy02fxjUgPI00000NkvXXu0mjfYlgFu literal 0 HcmV?d00001 diff --git a/MinIO/logo.png b/MinIO/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..21d5e914abc0dcea2fa3b2b1dec33e6117c3348d GIT binary patch literal 5773 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 R;1@E-HDhz5HwKu{{{bU7F`WPa literal 0 HcmV?d00001 diff --git a/MinIO/run.sh b/MinIO/run.sh new file mode 100644 index 0000000..c82dff5 --- /dev/null +++ b/MinIO/run.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -e + +# Config via HA options +export MINIO_ROOT_USER="${ACCESS_KEY}" +export MINIO_ROOT_PASSWORD="${SECRET_KEY}" +export MINIO_REGION="${REGION:-us-east-1}" + +# TLS support (optional, autodetect) +CERT_PATH="/ssl/cert.pem" +KEY_PATH="/ssl/key.pem" + +# Data path +DATA_DIR="/data" + +# First-run: make sure bucket exists (done via client) +BUCKET="${BUCKET}" +mkdir -p "$DATA_DIR/$BUCKET" + +echo "[INFO] Starting MinIO with access: $ACCESS_KEY, region: $MINIO_REGION" +if [[ -f "$CERT_PATH" && -f "$KEY_PATH" ]]; then + echo "[INFO] TLS cert found, starting in HTTPS mode" + exec minio server $DATA_DIR --address ":9000" --console-address ":9001" --certs-dir /ssl +else + echo "[INFO] Starting in HTTP mode" + exec minio server $DATA_DIR --address ":9000" --console-address ":9001" +fi