Files
podcastdistributiona/.env.example
T
2026-06-07 03:58:32 -04:00

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/podcastyes?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="PodcastYes <noreply@podcastyes.app>"
# ─────────────────────────── Worker ─────────────────────────
# Max concurrent audio-generation jobs on the worker process (keep low on a shared VPS).
WORKER_CONCURRENCY="2"