Files
hmac-file-server/config-mobile-resilient.toml
Alexander Renz d80565f317 feat: Remove deprecated test files and enhance documentation for version 3.3.0 "Nexus Infinitum"
- 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.
2025-08-26 10:03:52 +00:00

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"