Infrarust v1.2.0 - CLI, Bans & Docker Updates
🌟 Major New Features
🖥️ Interactive CLI
You can now manage your proxy directly from the command line! The new CLI includes:
- Real-time server and player management
- Rich formatting with colors for better readability
- Command history and tab completion
- Automatically adapts to terminal capabilities
Try commands like list, kick, configs, and more!
🔒 Ban System
A complete ban management system is now available:
> ban --username(-u) BadPlayer --duration 1d --reason "Griefing"
- Ban by IP, username, or UUID with custom durations
- Persistent storage with automatic expiration
- Detailed audit logs and ban management
- Commands:
ban,unban,bans
🐳 Docker Integration
Infrarust now automatically discovers and configures Minecraft servers running in Docker:
- Add
infrarust.enable=truelabel to your containers - Dynamic reconfiguration when containers start/stop
- Custom routing based on container labels and ports
- Works with Docker Compose, Kubernetes, and standalone containers
🚀 Performance Improvements
Multi-threaded Connection Handling
I've redesigned how Infrarust handles connections:
- Multiple requests processed simultaneously
- Faster response times for server status queries
- Better resource utilization on multi-core systems
Enhanced Status Caching
- Intelligent caching reduces server load
- Request coalescing prevents thundering herd problems
- Customizable cache duration in configuration
🔧 Technical Improvements
Unified Component Architecture
- Cleaner internal design for better stability
- Enhanced error handling and recovery
- More robust shutdown sequence
- Reduced memory footprint
Better Error Messages
- Custom MOTDs when servers are unreachable
- Detailed logging for troubleshooting
- Graceful handling of network issues
🐛 Bug Fixes
- Reduced memory usage spikes during status request floods
- Improved connection tracking to prevent resource leaks
- More reliable proxy protocol handling
🔮 What's next?
Before starting a fresh refacto of the source code one feature is on my bucket list, the Lazy Server start that will give the abilities to start a server on a client login by executing a script or calling an API
And then a good refacto of the project to enable it to grow faster, have better maintainability etc...