๐ What's New
๐ Fail2ban Integration
Apache-style Access Logging (#265) - Protect your MeshMonitor instance from brute-force attacks!
- Apache Combined Log Format via Morgan middleware
- Automatic daily log rotation (14-day retention, gzip compression)
- Optional feature (disabled by default for performance)
- Comprehensive fail2ban setup guide
- AbuseIPDB integration support
- Environment variables:
ACCESS_LOG_ENABLED,ACCESS_LOG_PATH,ACCESS_LOG_FORMAT
Benefits:
- Automatic IP banning after failed login attempts
- Real-time threat reporting to AbuseIPDB
- Standards-compliant Apache log format
- Docker-friendly with separate bind mount
๐ Bug Fixes
Mobile Text Truncation (#266) - Fixes #251
Improved text truncation for long node names on iPhone 13 Pro and other mobile devices
The previous fix didn't fully work because:
- Flexbox children need
min-width: 0to properly truncate - Star button and role badge were interfering with truncation
Changes:
- Node names now properly truncate with ellipsis (
...) on mobile - Dashboard chart titles correctly truncate instead of being clipped
- Works across all screen sizes, especially beneficial for iPhone users
- Browser tooltips show full name on hover
Technical: Added min-width: 0 to enable flexbox text truncation and wrapped node name content in dedicated .node-name-text span.
Documentation Improvements
Map Tiles CSP Troubleshooting (#264)
- Added troubleshooting section for map tiles not loading behind reverse proxies
- Documented
NODE_ENV=productionrequirement for proper CSP headers - Updated all Docker Compose examples with correct environment variables
Fixed Dead Links (#267)
- Corrected VitePress internal links in fail2ban documentation
- Added automated docs build validation to PR workflow
- Future documentation PRs will be validated before merging
๐ฆ Dependencies
Production Dependencies (#259)
- Updated 6 production dependencies for security and performance improvements
Development Dependencies (#257)
- Updated 4 development dependencies for better tooling
๐ง Technical Improvements
New CI/CD Validation
- Documentation changes now validated in PRs
- VitePress build check catches dead links before deployment
- Prevents broken documentation from being merged
๐ Documentation
All documentation has been updated:
- Fail2ban Integration Guide - Complete setup with AbuseIPDB integration
- Reverse Proxy Configuration - Updated with troubleshooting
- Configuration Index - Access logging environment variables
๐ Acknowledgments
Thanks to @tonicb78 for reporting the iOS Safari text truncation issue (#251) with detailed screenshots and testing feedback!
Full Changelog: v2.8.4...v2.8.5
Install: docker pull ghcr.io/yeraze/meshmonitor:2.8.5
๐ MeshMonitor v2.8.5
๐ฆ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v2.8.5๐งช Testing
โ
All tests passed
โ
TypeScript checks passed
โ
Docker images built for linux/amd64, linux/arm64, linux/arm/v7
๐ Changes
See commit history for detailed changes.