# supabase-deploy-integration > Deploy Supabase integrations to Vercel, Fly.io, and Cloud Run platforms. Use when deploying Supabase-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like "deploy supabase", "supabase Vercel", "supabase production deploy", "supabase Cloud Run", "supabase Fly.io". - Author: Jeremy Longshore - Repository: bfrichot/claude-code-plugins-plus - Version: 20260103143715 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/bfrichot/claude-code-plugins-plus - Web: https://mule.run/skillshub/@@bfrichot/claude-code-plugins-plus~supabase-deploy-integration:20260103143715 --- --- name: supabase-deploy-integration description: | Deploy Supabase integrations to Vercel, Fly.io, and Cloud Run platforms. Use when deploying Supabase-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like "deploy supabase", "supabase Vercel", "supabase production deploy", "supabase Cloud Run", "supabase Fly.io". allowed-tools: Read, Write, Edit, Bash(vercel:*), Bash(fly:*), Bash(gcloud:*) version: 1.0.0 license: MIT author: Jeremy Longshore --- # Supabase Deploy Integration ## Overview Deploy Supabase-powered applications to popular platforms with proper secrets management. ## Prerequisites - Supabase API keys for production environment - Platform CLI installed (vercel, fly, or gcloud) - Application code ready for deployment - Environment variables documented ## Vercel Deployment ### Environment Setup ```bash # Add Supabase secrets to Vercel vercel secrets add supabase_api_key sk_live_*** vercel secrets add supabase_webhook_secret whsec_*** # Link to project vercel link # Deploy preview vercel # Deploy production vercel --prod ``` ### vercel.json Configuration ```json { "env": { "SUPABASE_API_KEY": "@supabase_api_key" }, "functions": { "api/**/*.ts": { "maxDuration": 30 } } } ``` ## Fly.io Deployment ### fly.toml ```toml app = "my-supabase-app" primary_region = "iad" [env] NODE_ENV = "production" [http_service] internal_port = 3000 force_https = true auto_stop_machines = true auto_start_machines = true ``` ### Secrets ```bash # Set Supabase secrets fly secrets set SUPABASE_API_KEY=sk_live_*** fly secrets set SUPABASE_WEBHOOK_SECRET=whsec_*** # Deploy fly deploy ``` ## Google Cloud Run ### Dockerfile ```dockerfile FROM node:20-slim WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . CMD ["npm", "start"] ``` ### Deploy Script ```bash #!/bin/bash # deploy-cloud-run.sh PROJECT_ID="${GOOGLE_CLOUD_PROJECT}" SERVICE_NAME="supabase-service" REGION="us-central1" # Build and push image gcloud builds submit --tag gcr.io/$PROJECT_ID/$SERVICE_NAME # Deploy to Cloud Run gcloud run deploy $SERVICE_NAME \ --image gcr.io/$PROJECT_ID/$SERVICE_NAME \ --region $REGION \ --platform managed \ --allow-unauthenticated \ --set-secrets=SUPABASE_API_KEY=supabase-api-key:latest ``` ## Environment Configuration Pattern ```typescript // config/supabase.ts interface SupabaseConfig { apiKey: string; environment: 'development' | 'staging' | 'production'; webhookSecret?: string; } export function getSupabaseConfig(): SupabaseConfig { const env = process.env.NODE_ENV || 'development'; return { apiKey: process.env.SUPABASE_API_KEY!, environment: env as SupabaseConfig['environment'], webhookSecret: process.env.SUPABASE_WEBHOOK_SECRET, }; } ``` ## Health Check Endpoint ```typescript // api/health.ts export async function GET() { const supabaseStatus = await checkSupabaseConnection(); return Response.json({ status: supabaseStatus ? 'healthy' : 'degraded', services: { supabase: supabaseStatus, }, timestamp: new Date().toISOString(), }); } ``` ## Instructions ### Step 1: Choose Deployment Platform Select the platform that best fits your infrastructure needs and follow the platform-specific guide below. ### Step 2: Configure Secrets Store Supabase API keys securely using the platform's secrets management. ### Step 3: Deploy Application Use the platform CLI to deploy your application with Supabase integration. ### Step 4: Verify Health Test the health check endpoint to confirm Supabase connectivity. ## Output - Application deployed to production - Supabase secrets securely configured - Health check endpoint functional - Environment-specific configuration in place ## Error Handling | Issue | Cause | Solution | |-------|-------|----------| | Secret not found | Missing configuration | Add secret via platform CLI | | Deploy timeout | Large build | Increase build timeout | | Health check fails | Wrong API key | Verify environment variable | | Cold start issues | No warm-up | Configure minimum instances | ## Examples ### Quick Deploy Script ```bash #!/bin/bash # Platform-agnostic deploy helper case "$1" in vercel) vercel secrets add supabase_api_key "$SUPABASE_API_KEY" vercel --prod ;; fly) fly secrets set SUPABASE_API_KEY="$SUPABASE_API_KEY" fly deploy ;; esac ``` ## Resources - [Vercel Documentation](https://vercel.com/docs) - [Fly.io Documentation](https://fly.io/docs) - [Cloud Run Documentation](https://cloud.google.com/run/docs) - [Supabase Deploy Guide](https://supabase.com/docs/deploy) ## Next Steps For webhook handling, see `supabase-webhooks-events`.