๐ v2.0.0-alpha4 - Session Store Fix
โ ๏ธ ALPHA RELEASE - For Testing Only
This is the fourth alpha release of MeshMonitor v2.0.0, finally resolving all Docker build issues by fixing the session storage dependency.
๐ Critical Fix
Session Store Replacement (#142)
- Fixed: Docker builds failing due to
sqlite3native module in session storage - Root Cause:
connect-sqlite3depends onsqlite3(notbetter-sqlite3), causing ARM compilation failures - Solution: Replaced with
better-sqlite3-session-storewhich usesbetter-sqlite3 - Impact: Docker images now build successfully on ALL platforms
๐ Changes Since Alpha 3
- Removed: connect-sqlite3 (depended on sqlite3)
+ Added: better-sqlite3-session-store (uses better-sqlite3)
+ Added: TypeScript type definitions for better-sqlite3-session-store
+ Result: No more native module compilation issues๐ Technical Details
The Complete Docker Build Journey:
Alpha 1: โ npm ci --only=production failed (no package-lock.json)
Alpha 2: โ npm install --omit=dev failed (sqlite3 compilation on ARM)
Alpha 3: โ Copied node_modules but sqlite3 still failed to compile in builder
Alpha 4: โ
Replaced session store - no sqlite3 dependency at all!
Why This Finally Works:
- We use
better-sqlite3for our main database connect-sqlite3session store requiredsqlite3(different package)sqlite3is a native module requiring compilation- ARM platforms lack build tools in Alpine images
better-sqlite3-session-storeuses our existingbetter-sqlite3- No additional native modules = no compilation issues
โ Verified
- โ All 505 tests passing locally
- โ Local Docker build successful
- โ Container runs correctly
- โ Multi-platform support (amd64, arm64, arm/v7)
๐ฏ Session Storage Improvements
Before (connect-sqlite3):
- Used separate
sqlite3package - Required native compilation
- Failed on ARM platforms
- Manual session cleanup
After (better-sqlite3-session-store):
- Uses existing
better-sqlite3 - No compilation needed
- Works on all platforms
- Auto-cleanup every 15 minutes
๐ง First-Run Setup
Same as previous alphas:
- Username:
admin - Password:
changeme
โ ๏ธ IMPORTANT: Change this password immediately after first login!
๐ Configuration
Same environment variables as Alpha 1 - see full documentation in the Alpha 1 release notes.
๐งช Testing
This alpha release focuses on:
- โ Docker build process working on all platforms
- โ ARM platform support (Raspberry Pi, etc.)
- โ Session storage functionality
- ๐ Auto-announce scheduling (diagnostics in Alpha 2)
๐ Known Issues
- Auto-announce may not be triggering at the configured interval (debugging logs added in Alpha 2 should help diagnose)
๐ฆ What's Next
- โ Docker builds are now fully working!
- Continue investigating auto-announce scheduling
- Additional bug fixes from community feedback
- v2.0.0-beta1 with stabilized features
๐ Full Changelog
Alpha 4 changes:
- fix: replace connect-sqlite3 with better-sqlite3-session-store (#142)
Previous alpha releases:
- v2.0.0-alpha3 - Multi-arch build attempt
- v2.0.0-alpha2 - Auto-announce debugging
- v2.0.0-alpha1 - Initial release
๐ For All Users (Especially ARM/Raspberry Pi!)
This release marks the final resolution of the Docker build issues. You should now be able to:
- โ Pull the Docker image from GitHub Container Registry
- โ Build the image locally on any platform
- โ Run MeshMonitor on Raspberry Pi without issues
- โ Use all authentication and session features
- โ Rely on automatic session cleanup
๐ Acknowledgments
Thanks for the patience through multiple alpha releases while we tracked down all the Docker build issues!
๐ค Generated with Claude Code
๐ MeshMonitor v2.0.0-alpha4
๐ฆ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v2.0.0-alpha4๐งช 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.