#!/usr/bin/env bash # Initialise Garage : layout du cluster (1 nœud), import de la clé S3, création + droits des buckets. # Idempotent. Fonctionne en mode CLI ou Coolify (via CONTAINER_SUFFIX). source "$(dirname "$0")/lib.sh" load_secrets G=$(cname ark-garage) log "Init Garage ($G)…" NODE=$(docker exec "$G" /garage status 2>/dev/null | awk '/NO ROLE ASSIGNED/{print $1}') if [ -n "${NODE:-}" ]; then docker exec "$G" /garage layout assign -z dev -c 1G "$NODE" >/dev/null # applique la version courante+1 (1 si cluster neuf) VER=$(docker exec "$G" /garage layout show 2>/dev/null | awk '/Current cluster layout version/{print $NF}') docker exec "$G" /garage layout apply --version "$(( ${VER:-0} + 1 ))" >/dev/null ok "Layout appliqué." else warn "Nœud déjà configuré (layout existant)." fi # Import de la clé S3 (même GK_ID/GK_SECRET que config.yml) docker exec "$G" /garage key import --yes -n arkindex "$GK_ID" "$GK_SECRET" >/dev/null 2>&1 \ && ok "Clé S3 importée." || warn "Clé S3 déjà présente." for b in $GARAGE_BUCKETS; do docker exec "$G" /garage bucket create "$b" >/dev/null 2>&1 || true docker exec "$G" /garage bucket allow --read --write --owner --key "$GK_ID" "$b" >/dev/null 2>&1 || true done N=$(docker exec "$G" /garage bucket list 2>/dev/null | grep -c '20' || true) ok "Buckets prêts ($N)."