# .env.example # ============================================================================ # ENVIRONMENT VARIABLES TEMPLATE # ============================================================================ # Copy this file to .env and fill in your values. # For local development with Docker/Podman, these defaults should work out of the box. # # IMPORTANT: Never commit .env files with real credentials to version control! # ============================================================================ # =================== # Database Configuration # =================== # PostgreSQL connection settings # For container development, use the service name "postgres" DB_HOST=postgres DB_PORT=5432 DB_USER=postgres DB_PASSWORD=postgres DB_NAME=flyer_crawler_dev # =================== # Redis Configuration # =================== # Redis URL for caching and job queues # For container development, use the service name "redis" REDIS_URL=redis://redis:6379 # Optional: Redis password (leave empty if not required) REDIS_PASSWORD= # =================== # Application Settings # =================== NODE_ENV=development # Frontend URL for CORS and email links FRONTEND_URL=http://localhost:3000 # =================== # Authentication # =================== # REQUIRED: Secret key for signing JWT tokens (generate a random 64+ character string) JWT_SECRET=your-super-secret-jwt-key-change-this-in-production # =================== # AI/ML Services # =================== # REQUIRED: Google Gemini API key for flyer OCR processing GEMINI_API_KEY=your-gemini-api-key # =================== # External APIs # =================== # Optional: Google Maps API key for geocoding store addresses GOOGLE_MAPS_API_KEY= # =================== # Email Configuration (Optional) # =================== # SMTP settings for sending emails (deal notifications, password reset) SMTP_HOST= SMTP_PORT=587 SMTP_SECURE=false SMTP_USER= SMTP_PASS= SMTP_FROM_EMAIL=noreply@example.com # =================== # Worker Configuration (Optional) # =================== # Concurrency settings for background job workers WORKER_CONCURRENCY=1 EMAIL_WORKER_CONCURRENCY=10 ANALYTICS_WORKER_CONCURRENCY=1 CLEANUP_WORKER_CONCURRENCY=10 # Worker lock duration in milliseconds (default: 2 minutes) WORKER_LOCK_DURATION=120000