🔥 Tremora del Terra: ultimate hmac-file-server fix – final push before the drop 💾🔐

This commit is contained in:
2025-07-18 14:48:45 +00:00
parent 347f9b1ede
commit 23f70faf68
26 changed files with 0 additions and 360 deletions

View File

View File

View File

View File

@ -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* 🚀

View File

View File

View File

View File

View File

View File

View File