
Environment variable template covering: - Application and security configuration - Database and Redis settings - Object storage (MinIO/S3) configuration - AI provider settings (OpenAI, Anthropic, etc.) - Security and antivirus (ClamAV) settings - Email and SMTP configuration - Logging and monitoring setup - Business logic and user limits - External service integrations - Development and testing options - Feature flags and toggles 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
240 lines
No EOL
6 KiB
Text
240 lines
No EOL
6 KiB
Text
# AI Bulk Image Renamer - Environment Variables Template
|
|
# Copy this file to .env and update with your actual values
|
|
|
|
# =============================================================================
|
|
# APPLICATION CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# Environment (development, staging, production)
|
|
NODE_ENV=development
|
|
|
|
# Application
|
|
APP_NAME="AI Bulk Image Renamer"
|
|
APP_VERSION=1.0.0
|
|
APP_URL=http://localhost:3000
|
|
APP_PORT=3000
|
|
API_PORT=3001
|
|
|
|
# Application Security
|
|
APP_SECRET=your_super_secret_key_change_this_in_production
|
|
JWT_SECRET=your_jwt_secret_key_minimum_32_characters
|
|
JWT_EXPIRES_IN=7d
|
|
JWT_REFRESH_EXPIRES_IN=30d
|
|
|
|
# Session Configuration
|
|
SESSION_SECRET=your_session_secret_key
|
|
SESSION_MAX_AGE=86400000
|
|
|
|
# CORS Settings
|
|
CORS_ORIGIN=http://localhost:3000,http://localhost:5173
|
|
CORS_CREDENTIALS=true
|
|
|
|
# =============================================================================
|
|
# DATABASE CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# PostgreSQL Database
|
|
DATABASE_URL=postgresql://postgres:dev_password_123@localhost:5432/ai_image_renamer_dev
|
|
POSTGRES_HOST=localhost
|
|
POSTGRES_PORT=5432
|
|
POSTGRES_DB=ai_image_renamer_dev
|
|
POSTGRES_USER=postgres
|
|
POSTGRES_PASSWORD=dev_password_123
|
|
|
|
# Database Pool Settings
|
|
DB_POOL_MIN=2
|
|
DB_POOL_MAX=10
|
|
DB_POOL_IDLE_TIMEOUT=30000
|
|
DB_POOL_ACQUIRE_TIMEOUT=60000
|
|
|
|
# =============================================================================
|
|
# REDIS CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# Redis Cache & Queues
|
|
REDIS_URL=redis://localhost:6379
|
|
REDIS_HOST=localhost
|
|
REDIS_PORT=6379
|
|
REDIS_PASSWORD=
|
|
REDIS_DB=0
|
|
|
|
# Redis Queue Settings
|
|
REDIS_QUEUE_DB=1
|
|
REDIS_SESSION_DB=2
|
|
REDIS_CACHE_DB=3
|
|
|
|
# Cache Settings
|
|
CACHE_TTL=3600
|
|
CACHE_MAX_ITEMS=1000
|
|
|
|
# =============================================================================
|
|
# OBJECT STORAGE (MinIO/S3)
|
|
# =============================================================================
|
|
|
|
# MinIO Configuration
|
|
MINIO_ENDPOINT=localhost:9000
|
|
MINIO_ACCESS_KEY=minio_dev_user
|
|
MINIO_SECRET_KEY=minio_dev_password_123
|
|
MINIO_USE_SSL=false
|
|
MINIO_PORT=9000
|
|
|
|
# S3 Buckets
|
|
S3_BUCKET_IMAGES=images
|
|
S3_BUCKET_PROCESSED=processed
|
|
S3_BUCKET_TEMP=temp
|
|
S3_REGION=us-east-1
|
|
|
|
# File Upload Settings
|
|
MAX_FILE_SIZE=50MB
|
|
ALLOWED_IMAGE_TYPES=jpg,jpeg,png,webp,gif,bmp,tiff
|
|
MAX_FILES_PER_BATCH=100
|
|
UPLOAD_TIMEOUT=300000
|
|
|
|
# =============================================================================
|
|
# AI & PROCESSING CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# OpenAI Configuration
|
|
OPENAI_API_KEY=sk-your_openai_api_key_here
|
|
OPENAI_MODEL=gpt-4
|
|
OPENAI_MAX_TOKENS=150
|
|
OPENAI_TEMPERATURE=0.3
|
|
|
|
# Alternative AI Providers (optional)
|
|
ANTHROPIC_API_KEY=
|
|
GOOGLE_AI_API_KEY=
|
|
AZURE_OPENAI_ENDPOINT=
|
|
AZURE_OPENAI_API_KEY=
|
|
|
|
# Image Processing
|
|
IMAGE_QUALITY=85
|
|
IMAGE_MAX_WIDTH=2048
|
|
IMAGE_MAX_HEIGHT=2048
|
|
THUMBNAIL_SIZE=300
|
|
WATERMARK_ENABLED=false
|
|
|
|
# Processing Limits
|
|
MAX_CONCURRENT_JOBS=5
|
|
JOB_TIMEOUT=600000
|
|
RETRY_ATTEMPTS=3
|
|
RETRY_DELAY=5000
|
|
|
|
# =============================================================================
|
|
# SECURITY & ANTIVIRUS
|
|
# =============================================================================
|
|
|
|
# ClamAV Antivirus
|
|
CLAMAV_HOST=localhost
|
|
CLAMAV_PORT=3310
|
|
CLAMAV_TIMEOUT=30000
|
|
VIRUS_SCAN_ENABLED=true
|
|
|
|
# Rate Limiting
|
|
RATE_LIMIT_WINDOW=900000
|
|
RATE_LIMIT_MAX_REQUESTS=100
|
|
RATE_LIMIT_SKIP_SUCCESSFUL=true
|
|
|
|
# Security Headers
|
|
SECURITY_HSTS_MAX_AGE=31536000
|
|
SECURITY_CONTENT_TYPE_NOSNIFF=true
|
|
SECURITY_FRAME_OPTIONS=DENY
|
|
SECURITY_XSS_PROTECTION=true
|
|
|
|
# =============================================================================
|
|
# EMAIL CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# SMTP Settings
|
|
SMTP_HOST=localhost
|
|
SMTP_PORT=1025
|
|
SMTP_SECURE=false
|
|
SMTP_USER=
|
|
SMTP_PASS=
|
|
|
|
# Email Settings
|
|
EMAIL_FROM="AI Image Renamer <noreply@example.com>"
|
|
EMAIL_REPLY_TO=support@example.com
|
|
ADMIN_EMAIL=admin@example.com
|
|
|
|
# Email Templates
|
|
EMAIL_VERIFICATION_ENABLED=true
|
|
EMAIL_NOTIFICATIONS_ENABLED=true
|
|
|
|
# =============================================================================
|
|
# LOGGING & MONITORING
|
|
# =============================================================================
|
|
|
|
# Logging Configuration
|
|
LOG_LEVEL=info
|
|
LOG_FORMAT=combined
|
|
LOG_FILE_ENABLED=true
|
|
LOG_FILE_PATH=./logs/app.log
|
|
LOG_MAX_SIZE=10MB
|
|
LOG_MAX_FILES=5
|
|
|
|
# Monitoring
|
|
HEALTH_CHECK_ENABLED=true
|
|
METRICS_ENABLED=true
|
|
METRICS_PORT=9090
|
|
|
|
# Sentry Error Tracking (optional)
|
|
SENTRY_DSN=
|
|
SENTRY_ENVIRONMENT=development
|
|
SENTRY_RELEASE=
|
|
|
|
# =============================================================================
|
|
# BUSINESS LOGIC CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# User Limits
|
|
FREE_TIER_MONTHLY_LIMIT=100
|
|
PREMIUM_TIER_MONTHLY_LIMIT=10000
|
|
MAX_API_CALLS_PER_MINUTE=10
|
|
|
|
# SEO Settings
|
|
SEO_MIN_FILENAME_LENGTH=10
|
|
SEO_MAX_FILENAME_LENGTH=100
|
|
SEO_INCLUDE_ALT_TEXT=true
|
|
SEO_INCLUDE_KEYWORDS=true
|
|
|
|
# Subscription & Billing (Stripe)
|
|
STRIPE_PUBLIC_KEY=pk_test_your_stripe_public_key
|
|
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
|
|
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
|
|
|
|
# =============================================================================
|
|
# EXTERNAL SERVICES
|
|
# =============================================================================
|
|
|
|
# Google Analytics
|
|
GA_TRACKING_ID=
|
|
GA_MEASUREMENT_ID=
|
|
|
|
# Social Login (optional)
|
|
GOOGLE_CLIENT_ID=
|
|
GOOGLE_CLIENT_SECRET=
|
|
GITHUB_CLIENT_ID=
|
|
GITHUB_CLIENT_SECRET=
|
|
|
|
# CDN Configuration
|
|
CDN_URL=
|
|
CDN_ENABLED=false
|
|
|
|
# =============================================================================
|
|
# DEVELOPMENT & TESTING
|
|
# =============================================================================
|
|
|
|
# Development Settings
|
|
ENABLE_CORS=true
|
|
ENABLE_SWAGGER=true
|
|
ENABLE_PLAYGROUND=true
|
|
ENABLE_DEBUG_LOGS=true
|
|
|
|
# Test Database (for running tests)
|
|
TEST_DATABASE_URL=postgresql://postgres:test_password@localhost:5432/ai_image_renamer_test
|
|
|
|
# Feature Flags
|
|
FEATURE_BATCH_PROCESSING=true
|
|
FEATURE_AI_SUGGESTIONS=true
|
|
FEATURE_BULK_OPERATIONS=true
|
|
FEATURE_ANALYTICS=false |