# QuickDID Environment Configuration Template # Copy this file to .env and customize for your deployment # ============================================================================ # REQUIRED CONFIGURATION # ============================================================================ # External hostname for service endpoints (REQUIRED) # Examples: # - quickdid.example.com # - quickdid.example.com:8080 # - localhost:3007 HTTP_EXTERNAL=quickdid.example.com # ============================================================================ # NETWORK CONFIGURATION # ============================================================================ # HTTP server port (default: 8080) HTTP_PORT=8080 # PLC directory hostname (default: plc.directory) # Use "plc.directory" for production PLC_HOSTNAME=plc.directory # HTTP User-Agent header (optional) # Default: quickdid/{version} (+https://github.com/smokesignal.events/quickdid) # USER_AGENT=quickdid/1.0.0 (+https://quickdid.example.com) # Custom DNS nameservers (optional, comma-separated) # Examples: 8.8.8.8,8.8.4.4 or 1.1.1.1,1.0.0.1 # DNS_NAMESERVERS= # Additional CA certificates (optional, comma-separated paths) # CERTIFICATE_BUNDLES= # ============================================================================ # CACHING CONFIGURATION # ============================================================================ # Redis URL for caching (optional but recommended for production) # Examples: # - redis://localhost:6379/0 # - redis://user:pass@redis.example.com:6379/0 # - rediss://secure-redis.example.com:6380/0 # REDIS_URL=redis://localhost:6379/0 # TTL for in-memory cache in seconds (default: 600 = 10 minutes) # Lower = fresher data, higher = better performance # Range: 60-3600 recommended CACHE_TTL_MEMORY=600 # TTL for Redis cache in seconds (default: 7776000 = 90 days) # Recommendations: # - 86400 (1 day) for frequently changing data # - 604800 (1 week) for balanced performance # - 7776000 (90 days) for stable data CACHE_TTL_REDIS=86400 # ============================================================================ # QUEUE CONFIGURATION # ============================================================================ # Queue adapter type (default: mpsc) # Options: # - mpsc: In-memory queue (single instance) # - redis: Distributed queue (multi-instance) # - noop: Disable queue (testing only) QUEUE_ADAPTER=mpsc # Redis URL for queue operations (optional) # Falls back to REDIS_URL if not specified # Use when separating cache and queue Redis instances # QUEUE_REDIS_URL= # Redis key prefix for queues (default: queue:handleresolver:) # Useful for namespacing when sharing Redis QUEUE_REDIS_PREFIX=queue:handleresolver: # Redis blocking timeout in seconds (default: 5) # Lower = more responsive, higher = less polling QUEUE_REDIS_TIMEOUT=5 # Worker ID for queue operations (optional) # Default: auto-generated UUID # Examples: worker-001, prod-us-east-1, $(hostname) # QUEUE_WORKER_ID= # Buffer size for MPSC queue (default: 1000) # Increase for high-traffic deployments QUEUE_BUFFER_SIZE=1000 # ============================================================================ # STATIC FILES CONFIGURATION # ============================================================================ # Directory for serving static files (default: www) # This should contain: # - index.html (landing page) # - .well-known/atproto-did (service DID) # - .well-known/did.json (DID document) # Docker default: /app/www STATIC_FILES_DIR=www # ============================================================================ # LOGGING # ============================================================================ # Rust log level # Options: trace, debug, info, warn, error # Production: info or warn # Development: debug RUST_LOG=info # ============================================================================ # DEVELOPMENT OVERRIDES (uncomment for local development) # ============================================================================ # HTTP_EXTERNAL=localhost:3007 # RUST_LOG=debug # CACHE_TTL_MEMORY=60 # CACHE_TTL_REDIS=300