# HMAC File Server 3.2 Ultimate Fixed - Release Notes ## ๐Ÿš€ Major Release: Complete Configuration Modernization & Enhanced Multi-Platform Support **Release Date:** July 18, 2025 **Version:** 3.2 Ultimate Fixed **Codename:** "Architecture Revolution" --- ## ๐ŸŽฏ What's New in 3.2 Ultimate Fixed This release represents a **complete modernization** of HMAC File Server with comprehensive configuration updates, enhanced multi-architecture support, and improved project organization. Every aspect of the server has been refined for better performance, reliability, and ease of deployment. ### ๐Ÿ”ง Configuration System Overhaul #### **Modernized Field Names** All configuration fields have been updated to use consistent, modern naming conventions: | **Old Field Name** | **New Field Name** | **Purpose** | |-------------------|-------------------|-------------| | `listenport` | `listen_address` | Server binding address and port | | `storagepath` | `storage_path` | File storage directory | | `metricsenabled` | `metrics_enabled` | Prometheus metrics toggle | | `readtimeout` | `read_timeout` | HTTP read timeout | | `writetimeout` | `write_timeout` | HTTP write timeout | | `idletimeout` | `idle_timeout` | HTTP idle timeout | #### **Extended Timeout Support** - **4800-second timeouts** for large file handling (up from 30s) - Perfect for multi-gigabyte file transfers - Eliminates timeout errors during long uploads/downloads - Configurable per operation type #### **Enhanced Deduplication System** ```toml [deduplication] enabled = true directory = "./deduplication" maxsize = "1GB" # Files larger than 1GB bypass deduplication for performance ``` #### **Dynamic Worker Scaling** ```toml [server] enable_dynamic_workers = true worker_scale_up_thresh = 50 # Scale up when queue exceeds 50 worker_scale_down_thresh = 10 # Scale down when queue drops below 10 ``` ### ๐Ÿ—๏ธ Multi-Architecture Build System #### **New Build Script Features** The `buildgo.sh` script now supports: - **Interactive Architecture Selection Menu** - **Cross-compilation Support** for: - **AMD64** (x86_64) - Standard servers and desktops - **ARM64** (AArch64) - Modern ARM processors, Raspberry Pi 4+ - **ARM32v7** - Older ARM devices, Raspberry Pi 3 and earlier - **Build-All Option** - Creates all architectures in one command - **Smart Binary Naming** - `hmac-file-server_amd64`, `hmac-file-server_arm64`, etc. - **Color-coded Output** for better user experience #### **Usage Examples** ```bash # Interactive mode with menu ./buildgo.sh # Menu options: # 1) AMD64 (x86_64) # 2) ARM64 (AArch64) # 3) ARM32v7 # 4) Build All Architectures # 5) Native Build ``` ### ๐Ÿ“ Project Organization Improvements #### **Test Suite Reorganization** - All test scripts moved to dedicated `tests/` directory - Comprehensive test documentation in `tests/README.md` - Organized test categories: - **Upload Tests** - Various file sizes and types - **Network Tests** - Connection resilience and recovery - **Performance Tests** - Load testing and benchmarks - **Integration Tests** - Full system validation #### **Test Files Available** - `test_1mb.bin` / `test_1mb.txt` - Small file testing - `test_50mb.bin` - Medium file testing - `test_215mb.bin` - Large file testing - `test_4gb.bin` / `test_4gb.txt` - Massive file testing - `chunk_0.bin` - Chunked upload testing ### ๐Ÿ›ก๏ธ Security & Performance Enhancements #### **ClamAV Selective Scanning** ```toml [clamav] # Only scan potentially dangerous file types scanfileextensions = [".txt", ".pdf", ".doc", ".docx", ".exe", ".zip", ".rar"] # Skip files larger than 200MB (ClamAV performance limit) maxscansize = "200MB" ``` #### **Smart File Handling** - **Deduplication** with hard-link optimization - **Pre-caching** for frequently accessed files - **Resumable uploads/downloads** for network resilience - **Chunked transfer** support for large files ### ๐Ÿณ Docker & Deployment Improvements #### **Enhanced Docker Configuration** - Updated `dockerenv/config/config.toml` with all modern settings - Optimized container resource usage - Better volume mapping for persistent storage - Improved health check configurations #### **Production-Ready Defaults** ```toml [server] max_upload_size = "10GB" cleanup_interval = "24h" max_file_age = "720h" # 30 days min_free_bytes = "1GB" ``` ### ๐Ÿ“– Documentation Overhaul #### **Completely Updated Documentation** - **README.md** - Modern configuration examples and usage - **WIKI.md** - Comprehensive configuration reference - **INSTALL.md** - Production deployment guide - **BUILD_GUIDE.md** - Multi-architecture build instructions - **NETWORK_RESILIENCE_GUIDE.md** - Network handling best practices #### **Configuration Best Practices** All documentation now includes: - **Timeout configuration** for different use cases - **Performance tuning** recommendations - **Security hardening** guidelines - **Troubleshooting** common issues --- ## ๐Ÿ”„ Migration Guide ### From 3.1.x to 3.2 Ultimate Fixed #### **Configuration Updates Required** 1. **Update field names** in your `config.toml`: ```bash # Old format listenport = ":8080" storagepath = "/uploads" metricsenabled = true # New format listen_address = ":8080" storage_path = "/uploads" metrics_enabled = true ``` 2. **Update timeout values** for better large file support: ```toml [timeouts] readtimeout = "4800s" writetimeout = "4800s" idletimeout = "4800s" ``` 3. **Enable new features**: ```toml [server] enable_dynamic_workers = true [deduplication] enabled = true maxsize = "1GB" ``` #### **No Breaking Changes** - Backward compatibility maintained for core functionality - Old configuration files will work with warnings - Gradual migration supported --- ## ๐Ÿš€ Quick Start ### **1. Download & Build** ```bash # Clone repository git clone https://github.com/your-org/hmac-file-server.git cd hmac-file-server # Build for your architecture ./buildgo.sh # Select option from interactive menu # Or build all architectures ./buildgo.sh # Select option 4 "Build All Architectures" ``` ### **2. Configure** ```bash # Copy example configuration cp config-example.toml config.toml # Edit for your environment nano config.toml ``` ### **3. Run** ```bash # Start server ./hmac-file-server -config config.toml # Or with Docker cd dockerenv docker-compose up -d ``` --- ## ๐Ÿงช Testing ### **Run Test Suite** ```bash # Run all tests cd tests ./run_all_tests.sh # Run specific test category ./test_upload_performance.sh ./test_network_resilience.sh ``` ### **Available Tests** - **Upload/Download** functionality - **Network resilience** and recovery - **Multi-architecture** binary validation - **Configuration** validation - **Performance** benchmarking --- ## ๐Ÿ“Š Performance Improvements | **Feature** | **3.1.x** | **3.2 Ultimate** | **Improvement** | |-------------|-----------|------------------|-----------------| | Upload Timeout | 30s | 4800s | **160x longer** | | Large File Support | Limited | 10GB+ | **Unlimited** | | Worker Scaling | Static | Dynamic | **Auto-scaling** | | Deduplication | Basic | Smart (1GB limit) | **Performance optimized** | | Architecture Support | AMD64 only | AMD64/ARM64/ARM32 | **Multi-platform** | | Build Time | Manual | Automated menu | **User-friendly** | --- ## ๐Ÿ› ๏ธ Technical Specifications ### **System Requirements** - **Minimum RAM:** 512MB - **Recommended RAM:** 2GB+ for large files - **Disk Space:** 100MB + storage for files - **Go Version:** 1.19+ for building ### **Supported Platforms** - **Linux AMD64** (x86_64) - **Linux ARM64** (AArch64) - **Linux ARM32** (ARMv7) - **Docker** containers - **Kubernetes** deployments ### **Network Protocols** - **HTTP/HTTPS** with configurable redirect - **XEP-0363** compliant file upload - **Chunked transfer** encoding - **Resumable** uploads/downloads --- ## ๐Ÿค Contributing ### **Development Setup** 1. Fork the repository 2. Create feature branch 3. Use `./buildgo.sh` for testing builds 4. Run test suite: `cd tests && ./run_all_tests.sh` 5. Submit pull request ### **Documentation Updates** - Update relevant `.md` files - Test configuration examples - Validate cross-references --- ## ๐Ÿ“ Changelog Summary ### **Added** - โœ… Multi-architecture build system (AMD64/ARM64/ARM32) - โœ… Interactive build script with menu selection - โœ… Dynamic worker scaling with configurable thresholds - โœ… Extended timeout support (4800s) for large files - โœ… Smart deduplication with size limits - โœ… Comprehensive test suite organization - โœ… Modern configuration field naming - โœ… Enhanced ClamAV selective scanning ### **Changed** - ๐Ÿ”„ Configuration field names modernized - ๐Ÿ”„ Timeout defaults increased for large file support - ๐Ÿ”„ Documentation completely updated - ๐Ÿ”„ Project structure reorganized with tests/ folder - ๐Ÿ”„ Docker configuration optimized ### **Fixed** - ๐Ÿ› Large file upload timeout issues - ๐Ÿ› Configuration inconsistencies across documentation - ๐Ÿ› Build script platform limitations - ๐Ÿ› Test script organization and discoverability ### **Deprecated** - โš ๏ธ Old configuration field names (still supported with warnings) --- ## ๐Ÿ† Credits **Development Team:** - Core server enhancements - Multi-architecture build system - Configuration modernization - Documentation overhaul - Test suite organization **Special Thanks:** - Community feedback on timeout issues - Multi-platform deployment requests - Configuration consistency improvements --- ## ๐Ÿ“ž Support - **Documentation:** [WIKI.md](WIKI.md) - **Installation:** [INSTALL.md](INSTALL.md) - **Build Guide:** [BUILD_GUIDE.md](BUILD_GUIDE.md) - **Network Setup:** [NETWORK_RESILIENCE_GUIDE.md](NETWORK_RESILIENCE_GUIDE.md) - **Issues:** GitHub Issues - **Discussions:** GitHub Discussions --- **HMAC File Server 3.2 Ultimate Fixed** - *Powering reliable file transfers across all architectures* ๐Ÿš€