# ============================================ # Hotel Booking API - Environment Variables # ============================================ # Copy this file to .env and fill in your actual values # All variables are optional and have sensible defaults # See src/config/settings.py for default values # ============================================ # Application Configuration # ============================================ ENVIRONMENT=development # Options: development, staging, production DEBUG=true # Set to false in production HOST=0.0.0.0 PORT=8000 API_V1_PREFIX=/api/v1 # ============================================ # Database Configuration # ============================================ DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASS= # Leave empty if using MySQL without password DB_NAME=hotel_db # ============================================ # JWT Authentication # ============================================ # JWT_SECRET will be auto-generated on startup if not set # The generated secret will be saved here automatically JWT_ALGORITHM=HS256 JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 JWT_REFRESH_TOKEN_EXPIRE_DAYS=7 # ============================================ # Encryption Configuration # ============================================ # Base64-encoded encryption key for data encryption at rest # Generate a new key using: python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # If not set, a temporary key will be generated (not recommended for production) ENCRYPTION_KEY= # ============================================ # CORS & Client Configuration # ============================================ CLIENT_URL=http://localhost:5173 # Frontend application URL CORS_ORIGINS=["http://localhost:5173","http://localhost:3000","http://127.0.0.1:5173"] # JSON array of allowed origins (only used in production) # ============================================ # Email & Payment Settings # ============================================ # NOTE: Email (SMTP) and Payment Gateway (Stripe, PayPal) settings # are configured in the Admin Dashboard, not via environment variables. # Log in as admin and go to Settings page to configure these. # ============================================ # Redis Configuration (Optional) # ============================================ REDIS_ENABLED=false REDIS_HOST=localhost REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD= # Leave empty if Redis has no password # ============================================ # File Upload Configuration # ============================================ UPLOAD_DIR=uploads MAX_UPLOAD_SIZE=5242880 # Max upload size in bytes (5MB default) ALLOWED_EXTENSIONS=["jpg","jpeg","png","gif","webp"] # JSON array # ============================================ # Rate Limiting # ============================================ RATE_LIMIT_ENABLED=true RATE_LIMIT_PER_MINUTE=60 # ============================================ # Logging Configuration # ============================================ LOG_LEVEL=INFO # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL LOG_FILE=logs/app.log LOG_MAX_BYTES=10485760 # Max log file size in bytes (10MB) LOG_BACKUP_COUNT=5 # ============================================ # Server Configuration # ============================================ REQUEST_TIMEOUT=30 # Request timeout in seconds (0 to disable) HEALTH_CHECK_INTERVAL=30 # Health check interval in seconds