LogoNEXTDEVKIT Docs

Cloudflare Workers

Environment variable configuration for Cloudflare Workers deployment

This configuration is ideal for edge computing with global distribution and cost-effective scaling. Cloudflare Workers provide excellent performance with built-in CDN and edge computing capabilities.

🚀 Core Application Settings

VariableDescriptionExampleRequired
BETTER_AUTH_SECRETSecret key for Better Auth session encryptionyour-32-character-secret-key
BETTER_AUTH_URLBase URL of your applicationhttps://yourdomain.com
NEXT_PUBLIC_APP_URLPublic URL for client-side usagehttps://yourdomain.com

📧 Email Configuration

VariableDescriptionExampleRequired
RESEND_API_KEYAPI key for Resend email servicere_123456789
RESEND_AUDIENCE_IDAudience ID for newsletter functionalityaud_123456789

🔐 OAuth Provider Settings

GitHub OAuth

VariableDescriptionExampleRequired
GITHUB_CLIENT_IDGitHub App Client IDIv1.a629723d24c123456
GITHUB_CLIENT_SECRETGitHub App Client Secretabc123def456ghi789jkl012

Google OAuth

VariableDescriptionExampleRequired
GOOGLE_CLIENT_IDGoogle OAuth Client ID123456789-abc123.apps.googleusercontent.com
GOOGLE_CLIENT_SECRETGoogle OAuth Client SecretGOCSPX-abc123def456ghi789

💳 Payment Integration (Stripe)

VariableDescriptionExampleRequired
STRIPE_SECRET_KEYStripe secret key for server-side operationssk_test_123... or sk_live_123...
STRIPE_WEBHOOK_SECRETWebhook endpoint secret for Stripe eventswhsec_123456789
NEXT_PUBLIC_PRICE_ID_PRO_MONTHLYStripe price ID for monthly pro planprice_123456789
NEXT_PUBLIC_PRICE_ID_PRO_YEARLYStripe price ID for yearly pro planprice_987654321
NEXT_PUBLIC_PRICE_ID_LIFETIMEStripe price ID for lifetime planprice_555666777

📁 Storage Configuration

VariableDescriptionExampleRequired
NEXT_PUBLIC_AVATARS_BUCKET_NAMECloudflare R2 bucket name for avatar uploadsmy-app-avatars

☁️ Cloudflare-Specific Storage Settings

VariableDescriptionExampleRequired
STORAGE_ACCOUNT_IDCloudflare Account ID for R2 storagea1b2c3d4e5f6g7h8i9j0
STORAGE_REGIONCloudflare R2 regionauto
STORAGE_ACCESS_KEY_IDR2 access key IDabc123def456ghi789
STORAGE_SECRET_ACCESS_KEYR2 secret access keyxyz789uvw456rst123
STORAGE_ENDPOINTR2 endpoint URLhttps://a1b2c3d4e5f6g7h8i9j0.r2.cloudflarestorage.com

📝 Example wrangler.jsonc Environment

[env.production.vars]
BETTER_AUTH_SECRET = "your-32-character-secret-key-here"
BETTER_AUTH_URL = "https://yourdomain.com"
NEXT_PUBLIC_APP_URL = "https://yourdomain.com"

# Email Service
RESEND_API_KEY = "re_123456789"
RESEND_AUDIENCE_ID = "aud_123456789"

# OAuth Providers
GITHUB_CLIENT_ID = "Iv1.a629723d24c123456"
GITHUB_CLIENT_SECRET = "abc123def456ghi789jkl012"
GOOGLE_CLIENT_ID = "123456789-abc123.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET = "GOCSPX-abc123def456ghi789"

# Payment Processing
STRIPE_SECRET_KEY = "sk_live_123..."
STRIPE_WEBHOOK_SECRET = "whsec_123456789"
NEXT_PUBLIC_PRICE_ID_PRO_MONTHLY = "price_123456789"
NEXT_PUBLIC_PRICE_ID_PRO_YEARLY = "price_987654321"
NEXT_PUBLIC_PRICE_ID_LIFETIME = "price_555666777"

# Storage
NEXT_PUBLIC_AVATARS_BUCKET_NAME = "my-app-avatars"
STORAGE_ACCOUNT_ID = "a1b2c3d4e5f6g7h8i9j0"
STORAGE_REGION = "auto"
STORAGE_ACCESS_KEY_ID = "abc123def456ghi789"
STORAGE_SECRET_ACCESS_KEY = "xyz789uvw456rst123"
STORAGE_ENDPOINT = "https://a1b2c3d4e5f6g7h8i9j0.r2.cloudflarestorage.com"

📝 Example .env File (Development)

# Core Application
BETTER_AUTH_SECRET=your-32-character-secret-key-here
BETTER_AUTH_URL=http://localhost:3000
NEXT_PUBLIC_APP_URL=http://localhost:3000

# Email Service
RESEND_API_KEY=re_123456789
RESEND_AUDIENCE_ID=aud_123456789

# OAuth Providers
GITHUB_CLIENT_ID=Iv1.a629723d24c123456
GITHUB_CLIENT_SECRET=abc123def456ghi789jkl012
GOOGLE_CLIENT_ID=123456789-abc123.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-abc123def456ghi789

# Payment Processing
STRIPE_SECRET_KEY=sk_test_123...
STRIPE_WEBHOOK_SECRET=whsec_123456789
NEXT_PUBLIC_PRICE_ID_PRO_MONTHLY=price_123456789
NEXT_PUBLIC_PRICE_ID_PRO_YEARLY=price_987654321
NEXT_PUBLIC_PRICE_ID_LIFETIME=price_555666777

# Storage
NEXT_PUBLIC_AVATARS_BUCKET_NAME=my-app-avatars
STORAGE_ACCOUNT_ID=a1b2c3d4e5f6g7h8i9j0
STORAGE_REGION=auto
STORAGE_ACCESS_KEY_ID=abc123def456ghi789
STORAGE_SECRET_ACCESS_KEY=xyz789uvw456rst123
STORAGE_ENDPOINT=https://a1b2c3d4e5f6g7h8i9j0.r2.cloudflarestorage.com