# ============================================================================= # ExporaFlow Environment Configuration # ============================================================================= # Copy this file to .env and fill in your actual values # Never commit .env to version control! # ============================================================================= # DATABASE # ============================================================================= # PostgreSQL connection string # Format: postgresql://username:password@host:port/database?sslmode=require # Examples: # Local: postgresql://postgres:password@localhost:5432/exporaflow # Supabase: postgresql://postgres:[password]@db.[project].supabase.co:5432/postgres # Railway: postgresql://postgres:[password]@[host]:5432/railway # Local Docker Compose default: # docker compose up -d # DATABASE_URL below points at the `postgres` service DATABASE_URL="" # ============================================================================= # NEXTAUTH.JS AUTHENTICATION # ============================================================================= # Your application URL (no trailing slash) # Development: http://localhost:3000 # Production: https://your-domain.com NEXTAUTH_URL="http://localhost:3000" # Secret key for JWT signing and encryption (minimum 32 characters) # Generate with: openssl rand -base64 32 NEXTAUTH_SECRET="your-very-long-random-secret-key-here-minimum-32-chars" # ============================================================================= # OAUTH PROVIDERS # ============================================================================= # GitHub OAuth Application # Create at: https://github.com/settings/developers # Callback URL: http://localhost:3000/api/auth/callback/github GITHUB_ID="" GITHUB_SECRET="" # Google OAuth Application # Create at: https://console.cloud.google.com/apis/credentials # Callback URL: http://localhost:3000/api/auth/callback/google GOOGLE_CLIENT_ID="" GOOGLE_CLIENT_SECRET="" # ============================================================================= # REDIS (RATE LIMITING) # ============================================================================= # Upstash Redis for rate limiting and caching # Create free account at: https://upstash.com/ UPSTASH_REDIS_REST_TOKEN="" UPSTASH_REDIS_REST_URL="" # ============================================================================= # EMAIL SERVICE (OPTIONAL) # ============================================================================= # Resend API for transactional emails # Create account at: https://resend.com/ # RESEND_API_KEY="re_your-resend-api-key" # ============================================================================= # DEVELOPMENT OPTIONS # ============================================================================= # Uncomment for additional development features # NODE_ENV="development" # DEBUG="true" OPENAI_API_KEY="" OPENAI_MODEL="" ANTHROPIC_API_KEY="" ANTHROPIC_MODEL="" UPSTASH_REDIS_REST_URL="" UPSTASH_REDIS_REST_TOKEN="" RESEND_API_KEY="" SLACK_WEBHOOK_URL="" TEAMS_WEBHOOK_URL="" SENTRY_DSN="" # Cloudinary (ticket images & videos) CLOUDINARY_URL= NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME= NEXT_PUBLIC_CLOUDINARY_API_KEY= CLOUDINARY_API_KEY= CLOUDINARY_API_SECRET= # Workspace owner — only this email can sign in without an invite WORKSPACE_OWNER_EMAIL= # ── Optional: branding ──────────────────────────────── # Run this under your own name without editing components. # All are optional; unset values fall back to the ExporaFlow defaults. NEXT_PUBLIC_BRAND_NAME="EDCS Service Desk" NEXT_PUBLIC_BRAND_COMPANY="EDCS" NEXT_PUBLIC_BRAND_TAGLINE="Incidents, change requests and SLAs for EDCS delivery teams." NEXT_PUBLIC_BRAND_LOGO="/logo.png" NEXT_PUBLIC_BRAND_SUPPORT_EMAIL="it-admin@edcs.com"