Environment Setup

Create a .env.local file in your project root.

You can generate a BETTER_AUTH_SECRET key here: Generate here

Environment Variables

.env.local
Terminal

Service Setup Guides

Database Setup (Neon.tech)

  1. 1
    Go to Neon.tech and create an account
  2. 2
    Create a new project
  3. 3
    Once created, go to the "Connection Details" tab
  4. 4
    Copy the connection string
  5. 5
    Replace DATABASE_URL in your .env.local with the connection string

Email Setup (Resend)

  1. 1
    Visit Resend and create an account
  2. 2
    Go to the API Keys section
  3. 3
    Generate a new API key
  4. 4
    Copy the API key and add it to RESEND_API_KEY in your .env.local
  5. 5
    Add your verified email address to RESEND_EMAIL

Make sure to verify your domain or email in Resend's dashboard

File Storage Setup (AWS S3)

  1. 1
    Create an AWS Account if you don't have one
  2. 2
    Go to AWS IAM and create a new user with S3 access
  3. 3
    Generate Access Key and Secret Key
  4. 4
    Create a new S3 bucket
  5. 5
    Configure your .env.local with AWS credentials and bucket details

Important: Make sure to configure CORS settings in your S3 bucket

Rate Limiting Setup (Upstash Redis)

  1. 1
    Go to Upstash and create an account
  2. 2
    Create a new Redis database
  3. 3
    Go to the β€œREST API” section
  4. 4
    Copy the UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN
  5. 5
    Add these values to your .env.local

Payment Setup (Stripe)

  1. 1
    Create a Stripe account
  2. 2
    Get your API keys from the Stripe Dashboard
  3. 3
    Create your products and price IDs
  4. 4
    Set up webhook endpoints
  5. 5
    Add the Stripe credentials to your .env.local

Authentication Setup (Google OAuth)

  1. 1
    Go to Google Cloud Console
  2. 2
    Create a new project or select an existing one
  3. 3
    Enable the Google OAuth2 API
  4. 4
    Configure the OAuth consent screen
  5. 5
    Fill in the application details:
    • App name: Your application name
    • User support email: Your email address
    • Developer contact information: Your email address
    • Authorized domains: Add your domain (or localhost for development)
  6. 6
    Create OAuth 2.0 credentials (Web application type)
  7. 7
    Add authorized redirect URIs:
    • http://localhost:3000/api/auth/callback/google (for development)
    • https://your-domain.com/api/auth/callback/google (for production)
  8. 8
    Copy the Client ID and Client Secret
  9. 9
    Add them to your .env.local as:
    GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret

For production, make sure to verify your domain and add it to the authorized domains list

Authentication Setup (GitHub OAuth)

  1. 1
    Go to GitHub Developer Settings
  2. 2
    Click on 'OAuth Apps' and then 'New OAuth App'
  3. 3
    Fill in the application details:
    • Application name: Your app name
    • Homepage URL: http://localhost:3000 (or your production URL)
    • Authorization callback URL: http://localhost:3000/api/auth/callback/github
  4. 4
    Click 'Register application'
  5. 5
    On the next screen, you'll see your Client ID
  6. 6
    Click 'Generate a new client secret' to create your Client Secret
  7. 7
    Copy the Client ID and Client Secret to your .env.local file
  8. 8
    Add them to your .env.local as:
    GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret

Make sure to keep your Client Secret secure and never expose it in client-side code

Essential Services

πŸ—„οΈ

Database

PostgreSQL database for storing application data

πŸ“§

Email Service

Transactional email service for notifications

πŸ”

Authentication

OAuth providers for secure user authentication

πŸ“

File Storage

S3-compatible storage for user uploads

⏱️

Rate Limiting

Redis-based rate limiting for API protection

πŸ’³

Payments

Stripe integration for subscription management