- Deleted obsolete test files: test_mime.go, test_mime_integration.go, and xmpp_client_upload_diagnosis.ipynb. - Updated README.md to reflect the new version 3.3.0 "Nexus Infinitum" and its features. - Added comprehensive release notes for version 3.3.0 detailing major enhancements and installation instructions. - Introduced cleanup script to remove development artifacts while preserving production files.
107 lines
3.8 KiB
TOML
107 lines
3.8 KiB
TOML
# HMAC File Server - Mobile Network Resilience Configuration
|
|
# Optimized for WiFi ↔ LTE switching and device standby scenarios
|
|
# Version: 3.3.0 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"
|