32 lines
1.0 KiB
Bash
Executable File
32 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# Wraps the Garage daemon: starts it in the background, runs one-time cluster
|
|
# initialization using the local RPC connection, then hands control back to
|
|
# the daemon process. Safe to re-run — all operations are idempotent.
|
|
set -e
|
|
|
|
garage server &
|
|
DAEMON_PID=$!
|
|
|
|
echo "Waiting for Garage to be ready..."
|
|
until garage status > /dev/null 2>&1; do
|
|
sleep 2
|
|
done
|
|
echo "Garage is up. Running cluster initialization..."
|
|
|
|
NODE_ID=$(garage node id 2>/dev/null | head -1 | awk '{print $1}')
|
|
garage layout assign "$NODE_ID" -z dc1 -c 100G 2>/dev/null || true
|
|
garage layout apply --version 1 2>/dev/null || true
|
|
|
|
garage bucket create "$S3_BUCKET" 2>/dev/null || true
|
|
|
|
# --yes skips the interactive confirmation prompt.
|
|
garage key import "$S3_ACCESS_KEY" "$S3_SECRET_KEY" -n starr-app --yes 2>/dev/null || true
|
|
|
|
garage bucket allow "$S3_BUCKET" --read --write --owner --key "$S3_ACCESS_KEY" 2>/dev/null || true
|
|
|
|
# Flag file read by the healthcheck — ensures the backend waits for full init.
|
|
touch /var/lib/garage/meta/.ready
|
|
echo "Garage init complete."
|
|
|
|
wait $DAEMON_PID
|