feat: create comprehensive .env.example configuration template
- Add 70+ environment variables organized in logical sections - Include app metadata, server settings, security, and performance options - Add feature flags, monitoring, and asset optimization settings - Provide production-safe defaults with development overrides - Document all configuration options with clear section headers - Support file upload limits, CORS configuration, and template settings
This commit is contained in:
275
.env.example
Normal file
275
.env.example
Normal file
@@ -0,0 +1,275 @@
|
||||
# UnitForge Environment Configuration
|
||||
# Copy this file to .env and modify the values as needed
|
||||
|
||||
# =============================================================================
|
||||
# APPLICATION INFORMATION
|
||||
# =============================================================================
|
||||
|
||||
APP_NAME=UnitForge
|
||||
APP_VERSION=1.0.0
|
||||
APP_DESCRIPTION="Create, validate, and manage systemd unit files"
|
||||
|
||||
# =============================================================================
|
||||
# EXTERNAL LINKS
|
||||
# =============================================================================
|
||||
|
||||
GITHUB_URL=https://github.com/will666/unitforge
|
||||
DOCUMENTATION_URL=https://unitforge.readthedocs.io/
|
||||
BUG_REPORTS_URL=https://github.com/will666/unitforge/issues
|
||||
|
||||
# =============================================================================
|
||||
# CONTACT INFORMATION
|
||||
# =============================================================================
|
||||
|
||||
CONTACT_EMAIL=contact@unitforge.dev
|
||||
|
||||
# =============================================================================
|
||||
# APPLICATION SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
DEBUG=false
|
||||
ENVIRONMENT=production
|
||||
LOG_LEVEL=info
|
||||
|
||||
# =============================================================================
|
||||
# SERVER CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
HOST=0.0.0.0
|
||||
PORT=8000
|
||||
RELOAD=false
|
||||
WORKERS=4
|
||||
|
||||
# =============================================================================
|
||||
# API CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
API_TITLE="${APP_NAME}"
|
||||
API_VERSION="${APP_VERSION}"
|
||||
API_DESCRIPTION=${APP_DESCRIPTION}
|
||||
DOCS_URL="/api/docs"
|
||||
REDOC_URL="/api/redoc"
|
||||
|
||||
# =============================================================================
|
||||
# SECURITY SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
# IMPORTANT: Generate a secure secret key for production
|
||||
SECRET_KEY=your-secret-key-here
|
||||
ALLOWED_HOSTS=["*"]
|
||||
|
||||
# =============================================================================
|
||||
# CORS CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
# Use "*" for all origins or comma-separated list of allowed origins
|
||||
# Examples:
|
||||
# CORS_ORIGINS=*
|
||||
# CORS_ORIGINS=["https://yourdomain.com", "https://www.yourdomain.com"]
|
||||
CORS_ORIGINS=*
|
||||
|
||||
# =============================================================================
|
||||
# DATABASE (Future Use)
|
||||
# =============================================================================
|
||||
|
||||
# DATABASE_URL="sqlite:///./unitforge.db"
|
||||
|
||||
# =============================================================================
|
||||
# FILE UPLOAD SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
# Maximum file upload size in bytes (1MB)
|
||||
MAX_UPLOAD_SIZE=1048576
|
||||
ALLOWED_EXTENSIONS=[".service", ".timer", ".socket", ".mount", ".target", ".path"]
|
||||
|
||||
# =============================================================================
|
||||
# TEMPLATE SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
# Template cache time-to-live in seconds (5 minutes)
|
||||
TEMPLATE_CACHE_TTL=300
|
||||
# Validation cache time-to-live in seconds (1 minute)
|
||||
VALIDATION_CACHE_TTL=60
|
||||
|
||||
# =============================================================================
|
||||
# DEVELOPMENT TOOLS (Override for Development)
|
||||
# =============================================================================
|
||||
|
||||
# Test options (development only)
|
||||
# PYTEST_ADDOPTS="-v --tb=short --strict-markers"
|
||||
# COVERAGE_REPORT_DIR="htmlcov"
|
||||
# MYPY_CONFIG_FILE="pyproject.toml"
|
||||
|
||||
# =============================================================================
|
||||
# UV PACKAGE MANAGER SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
# UV package manager cache directory
|
||||
# UV_CACHE_DIR=".uv-cache"
|
||||
# UV_PYTHON="python3"
|
||||
|
||||
# =============================================================================
|
||||
# DOCKER SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
# Docker build settings
|
||||
# DOCKER_BUILDKIT=1
|
||||
# COMPOSE_DOCKER_CLI_BUILD=1
|
||||
|
||||
# =============================================================================
|
||||
# PATHS
|
||||
# =============================================================================
|
||||
|
||||
FRONTEND_DIR="frontend"
|
||||
BACKEND_DIR="backend"
|
||||
STATIC_DIR="frontend/static"
|
||||
TEMPLATES_DIR="frontend/templates"
|
||||
|
||||
# =============================================================================
|
||||
# FEATURE FLAGS
|
||||
# =============================================================================
|
||||
|
||||
ENABLE_API_METRICS=false
|
||||
ENABLE_REQUEST_LOGGING=true
|
||||
ENABLE_TEMPLATE_CACHING=true
|
||||
ENABLE_VALIDATION_CACHING=true
|
||||
|
||||
# =============================================================================
|
||||
# PERFORMANCE SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
REQUEST_TIMEOUT=30
|
||||
KEEPALIVE_TIMEOUT=5
|
||||
MAX_CONNECTIONS=100
|
||||
|
||||
# =============================================================================
|
||||
# LOGGING CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
LOG_FORMAT="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||
LOG_DATE_FORMAT="%Y-%m-%d %H:%M:%S"
|
||||
ACCESS_LOG=true
|
||||
|
||||
# =============================================================================
|
||||
# DEVELOPMENT SERVER OPTIONS (Development Only)
|
||||
# =============================================================================
|
||||
|
||||
# Development server auto-reload settings
|
||||
# AUTO_RELOAD=false
|
||||
# RELOAD_DIRS=["backend", "frontend"]
|
||||
# RELOAD_DELAY=0.25
|
||||
|
||||
# =============================================================================
|
||||
# TESTING CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
# Testing configuration
|
||||
# TEST_DATABASE_URL="sqlite:///:memory:"
|
||||
# TEST_PARALLEL=true
|
||||
# TEST_COVERAGE_THRESHOLD=80
|
||||
|
||||
# =============================================================================
|
||||
# CLI CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
CLI_VERBOSE=false
|
||||
CLI_COLOR=true
|
||||
CLI_PROGRESS=true
|
||||
|
||||
# =============================================================================
|
||||
# VALIDATION SETTINGS
|
||||
# =============================================================================
|
||||
|
||||
STRICT_VALIDATION=false
|
||||
SHOW_WARNINGS=true
|
||||
MAX_VALIDATION_ERRORS=50
|
||||
|
||||
# =============================================================================
|
||||
# TEMPLATE GENERATION DEFAULTS
|
||||
# =============================================================================
|
||||
|
||||
DEFAULT_USER="www-data"
|
||||
DEFAULT_GROUP="www-data"
|
||||
DEFAULT_RESTART_POLICY="on-failure"
|
||||
DEFAULT_WANTED_BY="multi-user.target"
|
||||
|
||||
# =============================================================================
|
||||
# SECURITY HEADERS
|
||||
# =============================================================================
|
||||
|
||||
SECURITY_HEADERS=true
|
||||
# HSTS max age in seconds (1 year)
|
||||
HSTS_MAX_AGE=31536000
|
||||
CSP_ENABLED=true
|
||||
|
||||
# =============================================================================
|
||||
# MONITORING
|
||||
# =============================================================================
|
||||
|
||||
HEALTH_CHECK_ENABLED=true
|
||||
METRICS_ENABLED=false
|
||||
TRACING_ENABLED=false
|
||||
|
||||
# =============================================================================
|
||||
# ASSET OPTIMIZATION
|
||||
# =============================================================================
|
||||
|
||||
HOT_RELOAD=false
|
||||
SOURCE_MAPS=false
|
||||
MINIFY_ASSETS=true
|
||||
COMPRESS_RESPONSES=true
|
||||
|
||||
# =============================================================================
|
||||
# DEVELOPMENT TOOLS (Development Only)
|
||||
# =============================================================================
|
||||
|
||||
# Development editor and browser
|
||||
# EDITOR="code"
|
||||
# BROWSER="firefox"
|
||||
|
||||
# =============================================================================
|
||||
# GIT HOOKS (Development Only)
|
||||
# =============================================================================
|
||||
|
||||
# Git hooks configuration
|
||||
# PRE_COMMIT_ENABLED=true
|
||||
# AUTO_FORMAT=true
|
||||
# AUTO_LINT=true
|
||||
|
||||
# =============================================================================
|
||||
# DOCUMENTATION
|
||||
# =============================================================================
|
||||
|
||||
DOCS_AUTO_RELOAD=false
|
||||
API_DOCS_ENABLED=true
|
||||
SWAGGER_UI_ENABLED=true
|
||||
REDOC_ENABLED=true
|
||||
|
||||
# =============================================================================
|
||||
# DEVELOPMENT OVERRIDES
|
||||
# =============================================================================
|
||||
# Uncomment the following lines for development:
|
||||
|
||||
# DEBUG=true
|
||||
# ENVIRONMENT=development
|
||||
# LOG_LEVEL=debug
|
||||
# HOST=127.0.0.1
|
||||
# RELOAD=true
|
||||
# WORKERS=1
|
||||
# API_TITLE="${APP_NAME} Development"
|
||||
# API_VERSION="${APP_VERSION}-dev"
|
||||
# SECRET_KEY="dev-secret-key-change-in-production"
|
||||
# ALLOWED_HOSTS=["localhost", "127.0.0.1", "0.0.0.0", "::1"]
|
||||
# CORS_ORIGINS=["http://localhost:3000", "http://localhost:8000", "http://127.0.0.1:8000"]
|
||||
# ENABLE_API_METRICS=true
|
||||
# AUTO_RELOAD=true
|
||||
# RELOAD_DIRS=["backend", "frontend"]
|
||||
# RELOAD_DELAY=0.25
|
||||
# HOT_RELOAD=true
|
||||
# SOURCE_MAPS=true
|
||||
# MINIFY_ASSETS=false
|
||||
# COMPRESS_RESPONSES=false
|
||||
# SECURITY_HEADERS=false
|
||||
# HSTS_MAX_AGE=0
|
||||
# CSP_ENABLED=false
|
||||
# DOCS_AUTO_RELOAD=true
|
||||
Reference in New Issue
Block a user