# Environment Configuration NODE_ENV=development PORT=3000 # Database Configuration (PostgreSQL) POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=qrmaster # For local development (without Docker): # DATABASE_URL=postgresql://postgres:postgres@localhost:5435/qrmaster?schema=public # For Docker Compose (internal Docker network): DATABASE_URL=postgresql://postgres:postgres@db:5432/qrmaster?schema=public # NextAuth Configuration NEXTAUTH_URL=http://localhost:3050 NEXTAUTH_SECRET=your-secret-key-here-change-in-production # Session cookie scope. Leave EMPTY for local development (browsers reject dotted # domains on localhost). In production set to `.qrmaster.net` so the session is shared # between www.qrmaster.net and app.qrmaster.net. Only honoured when NODE_ENV=production. COOKIE_DOMAIN= # OAuth Providers (Optional) GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Redis Configuration (Optional - for rate limiting and caching) REDIS_URL=redis://redis:6379 # Security # Used for hashing IP addresses in analytics IP_SALT=your-ip-salt-here-change-in-production # Features ENABLE_DEMO=false # SEO Configuration # Set to 'true' in production to allow search engine indexing NEXT_PUBLIC_INDEXABLE=true # Stripe Payment Configuration (Optional - for subscription payments) # Get your keys from: https://dashboard.stripe.com/apikeys STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET= NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= # Stripe Price IDs (create these in your Stripe dashboard) # NEXT_PUBLIC_STRIPE_FREE_PRICE_ID=price_xxx # NEXT_PUBLIC_STRIPE_PRO_PRICE_ID=price_xxx # NEXT_PUBLIC_STRIPE_BUSINESS_PRICE_ID=price_xxx # Analytics (Optional - PostHog) NEXT_PUBLIC_POSTHOG_KEY= NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com # Analytics (Optional - Microsoft Clarity session recordings & heatmaps) NEXT_PUBLIC_CLARITY_PROJECT_ID= # TikTok Content Posting API (Hermes Agent automated posting) TIKTOK_CLIENT_KEY= TIKTOK_CLIENT_SECRET= TIKTOK_REDIRECT_URI=https://qrmaster.net/api/tiktok/callback # Optional: protects /api/tiktok/connect from being triggered by strangers TIKTOK_ADMIN_KEY= TIKTOK_EXPECTED_OPEN_ID=