Fixed: NETWORK_RESILIENCE_COMPLETE

This commit is contained in:
2025-08-26 08:34:19 +00:00
parent 7336b4c257
commit b2b9c179c2
46 changed files with 6364 additions and 101 deletions

View File

@ -0,0 +1,106 @@
# HMAC File Server - Mobile Network Resilience Configuration
# Optimized for WiFi ↔ LTE switching and device standby scenarios
# Version: 3.2.2 Enhanced for Mobile Devices
[server]
# Network binding - CRITICAL: Use 0.0.0.0 to bind to all interfaces
bind_ip = "0.0.0.0"
listen_address = "8080"
# Storage and basic settings
storage_path = "./uploads"
max_upload_size = "500MB"
log_file = "/var/log/hmac-file-server.log"
log_level = "info"
# Network resilience - CRITICAL for mobile scenarios
networkevents = true # Monitor network changes
auto_adjust_workers = true # Adapt to network conditions
[security]
# HMAC secret - MUST match ejabberd module configuration
secret = "mobile-network-resilience-secret-key"
# Enhanced authentication for mobile devices
bearer_tokens_enabled = true # Enable Bearer token auth
jwt_enabled = true # Enable JWT authentication
hmac_enabled = true # Enable legacy HMAC
# Extended validation periods for network switching
token_grace_period = "8h" # 8 hours base grace period
mobile_grace_period = "12h" # 12 hours for mobile clients
standby_grace_period = "24h" # 24 hours for standby recovery
ultra_max_grace = "72h" # 72 hours ultra-maximum for critical scenarios
[uploads]
# Upload resilience for network changes
resumable_uploads_enabled = true # CRITICAL: Enable upload resumption
max_resumable_age = "72h" # Keep sessions for 3 days
session_recovery_timeout = "600s" # 10 minutes to recover from network change
client_reconnect_window = "300s" # 5 minutes for client to reconnect
# Mobile-optimized chunking
chunked_uploads_enabled = true
chunk_size = "5MB" # Smaller chunks for mobile stability
upload_timeout = "3600s" # 1 hour upload timeout
# Network change handling
allow_ip_changes = true # CRITICAL: Allow IP changes during uploads
retry_failed_uploads = true # Auto-retry failed uploads
max_upload_retries = 8 # More retries for mobile networks
upload_pause_timeout = "10m" # Pause uploads during network switch
# File management
allowed_extensions = [
".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp", ".svg", # Images
".mp4", ".mov", ".avi", ".mkv", ".webm", ".3gp", # Videos
".mp3", ".ogg", ".wav", ".m4a", ".aac", ".flac", # Audio
".pdf", ".txt", ".doc", ".docx", ".rtf", ".md", # Documents
".zip", ".rar", ".7z", ".tar.gz", ".tar", ".bz2" # Archives
]
[timeouts]
# Extended timeouts for mobile scenarios
read_timeout = "600s" # 10 minutes read timeout (was 30s)
write_timeout = "600s" # 10 minutes write timeout (was 30s)
idle_timeout = "1200s" # 20 minutes idle timeout (was 60s)
[logging]
# Enhanced logging for mobile debugging
level = "info"
file = "/var/log/hmac-file-server-mobile.log"
max_size = 100
max_backups = 7
max_age = 7
compress = true
# Log network events for debugging
log_network_events = true
log_ip_changes = true
log_auth_failures = true
log_token_validation = true
[workers]
# Optimized worker configuration
num_workers = 10
upload_queue_size = 500
auto_scaling = true
[metrics]
# Monitoring for network performance
enabled = true
port = "9090"
expose_upload_metrics = true
track_network_changes = true
# EJABBERD INTEGRATION SETTINGS
[ejabberd]
# Module compatibility settings
module_type = "mod_http_upload_hmac_network_resilient"
extended_compatibility = true
payload_format_flexibility = true
# XEP-0363 HTTP File Upload compliance
xep0363_enabled = true
max_file_size = "500MB"
quota_per_user = "5GB"