Configuration

– Create a .env file in the project root and configure required variables. See section 11 for a full reference. A typical local setup looks like:

  - DATABASE_URL="mysql://USER:PASS@localhost:PORT/estuda"
  - NEXTAUTH_SECRET="a-long-random-string"
  - APP_BASE_URL="http://localhost:3000"
  - STRIPE_SECRET_KEY="sk_test_..."
  - STRIPE_WEBHOOK_SECRET="whsec_..."
  - NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_test_..."
  - CLOUDINARY_CLOUD_NAME="your_cloud"
  - CLOUDINARY_API_KEY="123456"
  - CLOUDINARY_API_SECRET="abcdef"
  - NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="your_cloud"
  - NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET="unsigned_preset_name"

Important:

– Ensure `APP_BASE_URL` matches the URL you access in the browser; Stripe success/cancel URLs depend on it.

– Create an unsigned upload preset in Cloudinary (for client uploads) or use signed uploads via the provided signature endpoint.