github Yeraze/meshmonitor v2.4.5
v2.4.5 - Quick Start Zero-Config Fix

latest releases: v2.21.4, v2.21.3, v2.21.2-test...
2 months ago

๐ŸŽฏ Quick Start Zero-Configuration Fix

This release fixes a critical issue where the documented Quick Start deployment was failing with SESSION_SECRET is required in production environment. The Quick Start now works exactly as documented - with zero configuration required.

๐Ÿ› Fixes

Quick Start Deployment Failures (#198)

Problem: Container crashed on startup when using the documented minimal docker-compose.yml configuration.

Root Causes:

  1. SESSION_SECRET was required in production mode, breaking zero-config promise
  2. HSTS headers were being sent over HTTP due to inconsistent COOKIE_SECURE logic

Solution:

  • โœ… Auto-generate SESSION_SECRET with informative warnings when not set
  • โœ… Default COOKIE_SECURE to false for HTTP compatibility
  • โœ… Fix HSTS header logic to align with COOKIE_SECURE defaults
  • โœ… Container now starts successfully with only MESHTASTIC_NODE_IP configured

โœจ Improvements

Automated Testing

Added comprehensive Quick Start test suite (test-quick-start.sh):

  • 11 automated tests validating zero-config deployment
  • Tests container startup, session handling, CSRF protection, and authentication
  • Prevents regression of Quick Start functionality
  • Run with: npm run test:quick-start

Better Security Warnings

Clear, actionable warnings in container logs:

  • Explains when SESSION_SECRET auto-generation is acceptable (home use)
  • Guidance for HTTPS deployments requiring explicit COOKIE_SECURE=true
  • No more confusing silent defaults

Updated Documentation

Clarified Quick Start behavior in docs/getting-started.md:

  • Explains production mode with HTTP-friendly defaults
  • Clear security tradeoff documentation
  • Guidance for transitioning to HTTPS

๐Ÿ“ฆ Deployment

No Breaking Changes: Existing deployments with SESSION_SECRET and/or COOKIE_SECURE explicitly set are unaffected.

Quick Start docker-compose.yml (works as-is):

services:
  meshmonitor:
    image: ghcr.io/yeraze/meshmonitor:v2.4.5
    ports:
      - "8080:3001"
    volumes:
      - meshmonitor-data:/data
    environment:
      - MESHTASTIC_NODE_IP=192.168.5.106
    restart: unless-stopped
volumes:
  meshmonitor-data:

๐Ÿ“Š Testing

  • โœ… 614 unit tests passing
  • โœ… 11 Quick Start integration tests passing
  • โœ… Manual verification with documented Quick Start config

๐Ÿ“ Changed Files

  • src/server/auth/sessionConfig.ts: Auto-generate SESSION_SECRET, default COOKIE_SECURE to false
  • src/server/server.ts: Fix HSTS header logic
  • docs/getting-started.md: Update Quick Start documentation
  • test-quick-start.sh: Add automated test suite (new)
  • package.json: Add test:quick-start script
  • helm/meshmonitor/Chart.yaml: Version bump
  • docker-simple.yml: Example configuration (new)

๐Ÿ”— Full Changelog

See PR #198 for detailed technical discussion.

Docker Images:

  • ghcr.io/yeraze/meshmonitor:v2.4.5
  • ghcr.io/yeraze/meshmonitor:latest

๐Ÿš€ MeshMonitor v2.4.5

๐Ÿ“ฆ Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:v2.4.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.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.