52 lines
2.6 KiB
Bash
52 lines
2.6 KiB
Bash
# ─────────────────────────── Core ───────────────────────────
|
|
# External Postgres (also hosts the pg-boss queue schema). Used by Prisma + pg-boss.
|
|
DATABASE_URL="postgresql://user:password@host:5432/podcast-distribution-ai?schema=public"
|
|
|
|
# Better Auth — generate a strong secret: `openssl rand -base64 32`
|
|
BETTER_AUTH_SECRET="change-me"
|
|
BETTER_AUTH_URL="http://localhost:3000"
|
|
NEXT_PUBLIC_APP_URL="http://localhost:3000"
|
|
|
|
# ─────────────────────────── OAuth ──────────────────────────
|
|
GOOGLE_CLIENT_ID=""
|
|
GOOGLE_CLIENT_SECRET=""
|
|
|
|
# ─────────────────────────── AI providers ───────────────────
|
|
OPENAI_API_KEY=""
|
|
ELEVENLABS_API_KEY=""
|
|
|
|
# ─────────────────────────── Local-disk storage ─────────────
|
|
# Absolute path on the VPS where generated MP3s/art are written. Excluded from deploys.
|
|
STORAGE_DIR="./storage"
|
|
# Public base path for cover art served by nginx (maps to STORAGE_DIR/art).
|
|
MEDIA_PUBLIC_BASE_URL="/media"
|
|
|
|
# ─────────────────────────── Billing: Stripe ────────────────
|
|
STRIPE_SECRET_KEY=""
|
|
STRIPE_WEBHOOK_SECRET=""
|
|
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=""
|
|
STRIPE_PRICE_CREATOR_MONTHLY=""
|
|
STRIPE_PRICE_CREATOR_YEARLY=""
|
|
STRIPE_PRICE_PRO_MONTHLY=""
|
|
STRIPE_PRICE_PRO_YEARLY=""
|
|
STRIPE_PRICE_AGENCY_MONTHLY=""
|
|
STRIPE_PRICE_AGENCY_YEARLY=""
|
|
|
|
# ─────────────────────────── Billing: PayPal ────────────────
|
|
PAYPAL_CLIENT_ID=""
|
|
PAYPAL_CLIENT_SECRET=""
|
|
PAYPAL_WEBHOOK_ID=""
|
|
# https://api-m.sandbox.paypal.com (sandbox) | https://api-m.paypal.com (live)
|
|
PAYPAL_API_BASE="https://api-m.sandbox.paypal.com"
|
|
PAYPAL_PLAN_CREATOR=""
|
|
PAYPAL_PLAN_PRO=""
|
|
PAYPAL_PLAN_AGENCY=""
|
|
|
|
# ─────────────────────────── Email ──────────────────────────
|
|
RESEND_API_KEY=""
|
|
EMAIL_FROM="Podcast Distribution AI <noreply@podcastdistributionai.com>"
|
|
|
|
# ─────────────────────────── Worker ─────────────────────────
|
|
# Max concurrent audio-generation jobs on the worker process (keep low on a shared VPS).
|
|
WORKER_CONCURRENCY="2"
|