103 lines
3.3 KiB
Plaintext
103 lines
3.3 KiB
Plaintext
# ============================================
|
|
# 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
|