#!/usr/bin/env bash # One-time Garage initialization: assigns this single node to the cluster # layout, then creates the DocHub bucket and an access key for the backend. # # Run this once after `docker compose up -d` in this directory. set -euo pipefail GARAGE="docker compose exec garage /garage" echo "Waiting for garage to be ready..." until $GARAGE status >/dev/null 2>&1; do sleep 1 done NODE_ID=$($GARAGE status | awk '/NODE ID/{found=1; next} found && NF {print $1; exit}') if [ -z "$NODE_ID" ]; then echo "Could not determine node ID from 'garage status' output." >&2 exit 1 fi echo "Assigning layout to node $NODE_ID (single node, capacity 10G)..." $GARAGE layout assign -z dochub -c 10G "$NODE_ID" $GARAGE layout apply --version 1 echo "Creating bucket 'dochub'..." $GARAGE bucket create dochub echo "Creating access key 'dochub-backend'..." $GARAGE key create dochub-backend $GARAGE bucket allow --read --write --owner dochub --key dochub-backend echo echo "Done. Run 'docker compose exec garage /garage key info dochub-backend'" echo "to retrieve the access key ID and secret key, then set them as" echo "MINIO_ACCESS_KEY / MINIO_SECRET_KEY for the DocHub backend."