Files
hmac-file-server/RELEASE_3.2_ULTIMATE_FIXED.md

9.8 KiB

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

[deduplication]
enabled = true
directory = "./deduplication"
maxsize = "1GB"  # Files larger than 1GB bypass deduplication for performance

Dynamic Worker Scaling

[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

# 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

[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

[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:

    # 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:

    [timeouts]
    readtimeout = "4800s"
    writetimeout = "4800s" 
    idletimeout = "4800s"
    
  3. Enable new features:

    [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

# 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

# Copy example configuration
cp config-example.toml config.toml

# Edit for your environment
nano config.toml

3. Run

# Start server
./hmac-file-server -config config.toml

# Or with Docker
cd dockerenv
docker-compose up -d

🧪 Testing

Run Test Suite

# 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


HMAC File Server 3.2 Ultimate Fixed - Powering reliable file transfers across all architectures 🚀