Deploy Dumpstr to production using DigitalOcean App Platform (backend) and Vercel (frontend).
- GitHub account with this repo
- Vercel account
- DigitalOcean account
- Existing Supabase project with
dumpstr-mediabucket - Clerk application configured
- Go to cloud.digitalocean.com/apps
- Click "Create App"
- Choose Source: GitHub →
gtdrag/instascrape→feature/rename-to-dumpstrbranch - App Spec Detection: DigitalOcean will automatically detect our
.do/app.yamlconfiguration - Review Settings:
- Name:
dumpstr-backend - Plan: Basic ($5/month)
- Region: Choose closest to your users
- Name:
- Click "Create Resources"
- Wait for deployment (~5-8 minutes)
- Copy the generated URL (e.g.,
https://dumpstr-backend-xyz.ondigitalocean.app)
- Create App → GitHub → Select repository and branch
- Configure Service:
- Name:
dumpstr-backend - Source Directory:
/(root) - Build Command: Auto-detected from Dockerfile
- Run Command:
cd backend && python main.py - HTTP Port: 8000
- Name:
- Environment Variables:
PYTHONUNBUFFERED=1PORT=8000
- Plan: Basic ($5/month)
# Install Vercel CLI if needed
npm i -g vercel
# Deploy from project root
vercel
# Follow prompts:
# - Set up and deploy? Y
# - Which scope? (your account)
# - Link to existing project? N
# - Project name? dumpstr
# - Directory? ./
# - Override settings? N- Go to vercel.com/new
- Import
gtdrag/instascraperepository - Select
feature/rename-to-dumpstrbranch - Click "Deploy"
- Go to Project Settings → Environment Variables
- Add each variable:
# Your DigitalOcean backend URL
NEXT_PUBLIC_API_URL=https://dumpstr-backend-xyz.ondigitalocean.app
# Clerk (from Clerk dashboard)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxx
CLERK_SECRET_KEY=sk_live_xxxxx
# Supabase (from your project)
DATABASE_URL=postgresql://...
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJxxxxx
SUPABASE_SERVICE_ROLE_KEY=eyJxxxxx
# NOSTR
NOSTR_PRIVATE_KEY=nsec1xxxxx
# Stripe (optional)
STRIPE_SECRET_KEY=sk_live_xxxxxAfter adding environment variables:
vercel --prodOr in Vercel Dashboard: Deployments → Redeploy latest
Visit your DigitalOcean URL: https://dumpstr-backend-xyz.ondigitalocean.app/
Should see: {"message": "Dumpstr API is running"}
Visit your Vercel URL and verify:
- Homepage loads
- Login works
- Dashboard accessible
- Login to dashboard
- Try downloading an Instagram post
- Check gallery displays correctly
- Test NOSTR posting
- Build fails: Check DigitalOcean build logs
- App won't start: Verify
PORT=8000environment variable - Dependencies fail: DigitalOcean handles Docker builds cleanly
- API calls fail: Verify
NEXT_PUBLIC_API_URLmatches your DigitalOcean URL - CORS errors: Check backend CORS settings include your Vercel domain
- Connection fails: Verify
DATABASE_URLis correct - Migrations needed: Run
npx drizzle-kit push
- Basic Plan: $5/month
- Professional: $12/month (auto-scaling)
- Hobby: Free (perfect for personal projects)
- Pro: $20/month (custom domains, analytics)
- Minimal: $5/month (DigitalOcean Basic + Vercel Free)
- Professional: $32/month (DigitalOcean Pro + Vercel Pro)
- ✅ Docker support - Uses our Dockerfile exactly as-is
- ✅ No dependency issues - Standard Docker builds
- ✅ Reliable - Battle-tested platform
- ✅ Simple pricing - Predictable costs
- ✅ Full feature support - All our packages work
Your Dumpstr app is now live!
- Frontend:
https://dumpstr.vercel.app - Backend:
https://dumpstr-backend-xyz.ondigitalocean.app
- Update Clerk: Add production URLs to allowed origins
- Custom Domain: Configure in Vercel if desired
- Monitor: Use DigitalOcean and Vercel dashboards
To deploy updates:
git push origin feature/rename-to-dumpstrBoth DigitalOcean and Vercel will auto-deploy!