71 lines
2.6 KiB
Bash
71 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Supabase Setup Script
|
|
# This script downloads necessary configuration files and sets up Supabase
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
echo "🚀 Setting up Supabase..."
|
|
|
|
# Create necessary directories
|
|
echo "📁 Creating directories..."
|
|
mkdir -p volumes/api
|
|
mkdir -p volumes/db
|
|
mkdir -p volumes/functions
|
|
mkdir -p volumes/logs
|
|
mkdir -p volumes/pooler
|
|
mkdir -p volumes/storage
|
|
mkdir -p volumes/snippets
|
|
|
|
# Download configuration files from Supabase repository
|
|
SUPABASE_REPO="https://raw.githubusercontent.com/supabase/supabase/master/docker"
|
|
|
|
echo "📥 Downloading configuration files..."
|
|
|
|
# Kong API Gateway configuration
|
|
curl -fsSL "$SUPABASE_REPO/volumes/api/kong.yml" -o volumes/api/kong.yml
|
|
|
|
# Database initialization scripts
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/realtime.sql" -o volumes/db/realtime.sql
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/webhooks.sql" -o volumes/db/webhooks.sql
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/roles.sql" -o volumes/db/roles.sql
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/jwt.sql" -o volumes/db/jwt.sql
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/_supabase.sql" -o volumes/db/_supabase.sql
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/logs.sql" -o volumes/db/logs.sql
|
|
curl -fsSL "$SUPABASE_REPO/volumes/db/pooler.sql" -o volumes/db/pooler.sql
|
|
|
|
# Vector logs configuration
|
|
curl -fsSL "$SUPABASE_REPO/volumes/logs/vector.yml" -o volumes/logs/vector.yml
|
|
|
|
# Pooler configuration
|
|
curl -fsSL "$SUPABASE_REPO/volumes/pooler/pooler.exs" -o volumes/pooler/pooler.exs
|
|
|
|
# Create .env file if it doesn't exist
|
|
if [ ! -f .env ]; then
|
|
echo "📝 Creating .env file from .env.example..."
|
|
cp .env.example .env
|
|
echo ""
|
|
echo "⚠️ IMPORTANT: Please edit .env file and update the following:"
|
|
echo " - POSTGRES_PASSWORD"
|
|
echo " - JWT_SECRET (generate with: openssl rand -base64 32)"
|
|
echo " - SECRET_KEY_BASE (generate with: openssl rand -base64 32)"
|
|
echo " - VAULT_ENC_KEY (generate with: openssl rand -base64 32)"
|
|
echo " - PG_META_CRYPTO_KEY (generate with: openssl rand -base64 32)"
|
|
echo " - LOGFLARE_PUBLIC_ACCESS_TOKEN (generate with: openssl rand -base64 32)"
|
|
echo " - LOGFLARE_PRIVATE_ACCESS_TOKEN (generate with: openssl rand -base64 32)"
|
|
echo " - DASHBOARD_USERNAME and DASHBOARD_PASSWORD"
|
|
echo ""
|
|
fi
|
|
|
|
echo "✅ Supabase setup completed!"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Edit .env file with your configuration"
|
|
echo "2. Ensure shared_data_network exists: cd ../00-network && bash create-network.sh"
|
|
echo "3. Start Supabase: docker compose up -d"
|
|
echo "4. Access Supabase Studio at: http://localhost:3010"
|
|
echo "5. Access Supabase API at: http://localhost:8100"
|