🔥 Tremora del Terra: ultimate hmac-file-server fix – final push before the drop 💾🔐
This commit is contained in:
@ -1,360 +0,0 @@
|
||||
# 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* 🚀
|
Reference in New Issue
Block a user