Files
minio-storage/setup-buckets.sh
Frank John Begornia c3c3e38f28 first commit
2026-01-06 09:41:27 +08:00

76 lines
2.2 KiB
Bash

#!/bin/bash
# Setup MinIO buckets for all Crew applications
set -e
MINIO_ALIAS="crewminio"
MINIO_ENDPOINT="http://crew-minio:9000"
MINIO_USER="${MINIO_ROOT_USER:-minioadmin}"
MINIO_PASSWORD="${MINIO_ROOT_PASSWORD:-minioadmin123}"
echo "=========================================="
echo "Setting up MinIO buckets for Crew apps"
echo "=========================================="
echo ""
# Check if MinIO is running
if ! docker ps | grep -q crew-minio; then
echo "❌ Error: crew-minio container is not running"
echo " Start it first: docker-compose up -d"
exit 1
fi
echo "Installing MinIO Client (mc)..."
docker exec crew-minio sh -c "
if ! command -v mc &> /dev/null; then
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc && \
chmod +x mc && \
mv mc /usr/local/bin/
fi
"
echo "✓ MinIO Client installed"
echo ""
# Configure MinIO client
echo "Configuring MinIO client..."
docker exec crew-minio mc alias set $MINIO_ALIAS $MINIO_ENDPOINT $MINIO_USER $MINIO_PASSWORD
echo ""
# Create buckets for each application
BUCKETS=("crewsportswear" "merchbay" "merchbay-admin" "crew-admin" "email-reports")
for BUCKET in "${BUCKETS[@]}"; do
echo "Creating bucket: $BUCKET"
docker exec crew-minio mc mb $MINIO_ALIAS/$BUCKET --ignore-existing
# Set public read policy for images folder
echo " ↳ Setting public read access for $BUCKET/images/"
docker exec crew-minio mc anonymous set download $MINIO_ALIAS/$BUCKET/images/
echo " ✓ Bucket $BUCKET ready"
echo ""
done
echo "=========================================="
echo "✓ All buckets created successfully!"
echo "=========================================="
echo ""
echo "Buckets created:"
for BUCKET in "${BUCKETS[@]}"; do
echo " - $BUCKET"
done
echo ""
echo "Access MinIO Console:"
echo " Local: http://localhost:9001"
echo " Production: https://console.crewsportswear.com"
echo ""
echo "Credentials:"
echo " Username: $MINIO_USER"
echo " Password: $MINIO_PASSWORD"
echo ""
echo "S3 Endpoint:"
echo " Local: http://crew-minio:9000 (from app containers)"
echo " http://localhost:9000 (from host)"
echo " Production: https://minio.crewsportswear.com"