Because ‘stable’ is boring.
We’re proud to announce the release of HMAC File Server 3.2, code-named Tremora del Terra. This release marks a significant leap in usability, performance, and deployment simplicity. Every release now has a name—and this one is as balanced and powerful as its title suggests.
Whether you’re deploying on a lightweight ARM device or a high-performance server cluster, version 3.2 is designed to deliver a fast, secure, and seamless file server experience—with near-zero setup time.
Repository
The source code and release downloads are available at:
https://git.uuxo.net/uuxo/hmac-file-server
Key Features
Configuration Revolution
- Minimal Configuration: Configuration complexity has been reduced from 112 lines to as few as 8.
- Smart Defaults: All core settings now include production-ready defaults. You only need to configure what truly matters.
- Auto-Config Generation: Use
--genconfig
for a minimal starter config or --genconfig-advanced
for a full-featured template.
- Field Naming Consistency: Updated field names such as
listenport
to listen_address
for better clarity and alignment.
- Backwards Compatible: Existing configurations continue to function without modification.
- Override-Only System: Load sensible defaults first, override only what you explicitly define.
Enhanced File Processing
- Pre-Upload Deduplication: Files that already exist are instantly acknowledged, eliminating false upload errors.
- Extended Timeouts: New 4800-second timeouts improve support for large or slow uploads.
- Efficient Deduplication Engine: 1GB optimized file hashing ensures accuracy without excess resource use.
- Improved Queue Management: Upload queue size has doubled (50 to 100), and scaling thresholds are now more responsive (80% to 40%).
- Session Persistence: Upload sessions now remain active for up to 60 minutes to ensure reliability for large transfers.
Multi-Architecture Build System
- Interactive Cross-Compilation: A new guided build script supports cross-compiling with ease.
- Architecture Support: Full native support for AMD64, ARM64, and ARM32v7.
- Smart Binary Naming: Binaries now include target architecture in the filename for clarity.
Developer Experience
- Minimal Startup: Only three settings are required to launch a production-ready instance.
- Validation Engine: All configuration files are now fully validated with clear and actionable error messages.
- Refactored Project Layout: Test suites have been relocated to
/tests
for better project organization.
- Updated Documentation: All guides have been rewritten to reflect the new minimal configuration approach.
Performance and Security
- ClamAV Filtering: Optional antivirus scanning now intelligently skips media files and other safe types.
- Chunked Upload Enhancements: Increased reliability and resilience during high-volume file transfers.
- Dynamic Worker Scaling: Workers automatically scale based on live queue depth.
- Docker-Ready: The Docker deployment is now hardened and optimized for secure defaults.
Migration Guide
Upgrading from 3.1.x to 3.2 is seamless.
Option 1: Keep Your Existing Configuration
Your current config.toml
will continue to work without modification. The new version will apply improved defaults automatically.
Option 2: Migrate to the New Minimal Configuration
# Backup your current config
cp config.toml config-3.1-backup.toml
# Generate a new minimal config
./hmac-file-server --genconfig > config-simple.toml
# Copy over your specific values (e.g., storage_path, secret)
# Test with the new config
./hmac-file-server -config config-simple.toml