mirror of
https://github.com/l5yth/potato-mesh.git
synced 2026-03-28 17:42:48 +01:00
* feat: Add comprehensive Docker support - Add multi-container Docker setup with web app and data ingestor - Create production-ready Dockerfiles with multi-stage builds - Add Docker Compose configurations for dev, prod, and custom environments - Implement CI/CD pipeline with GitHub Actions for automated builds - Add comprehensive Docker documentation and setup guides - Include security scanning and multi-platform builds - Support for Meshtastic device integration via serial access - Persistent data storage with named volumes - Health checks and monitoring capabilities Addresses GitHub issue #120: Dockerize the project for easier community adoption Files added: - web/Dockerfile: Ruby web application container - data/Dockerfile: Python data ingestor container - data/requirements.txt: Python dependencies - docker-compose.yml: Base Docker Compose configuration - docker-compose.dev.yml: Development environment overrides - docker-compose.prod.yml: Production environment overrides - .env.example: Environment configuration template - .dockerignore: Docker build context optimization - .github/workflows/docker.yml: CI/CD pipeline - DOCKER.md: Comprehensive Docker documentation This implementation transforms PotatoMesh from a complex manual setup to a single-command deployment: docker-compose up -d * feat: Add Docker support with multi-architecture builds - Add web/Dockerfile with Ruby 3.4 Alpine base - Add data/Dockerfile with Python 3.13 Alpine base - Use Alpine's SQLite3 packages for cross-platform compatibility - Support AMD64, ARM64, ARMv7, and Windows architectures - Multi-stage builds for optimized production images - Non-root user security and proper file permissions * feat: Add Docker Compose configurations for different environments - docker-compose.yml: Production setup with GHCR images - docker-compose.dev.yml: Development setup with local builds - docker-compose.raspberry-pi.yml: Pi-optimized with resource limits - Support for all architectures (AMD64, ARM64, ARMv7) - Proper volume mounts and network configuration - Environment variable configuration for different deployments * feat: Add GitHub Actions workflows for Docker CI/CD - docker.yml: Multi-architecture build and push to GHCR - test-raspberry-pi-hardware.yml: ARM64 testing with QEMU - Support for manual workflow dispatch with version input - Build and test all Docker variants (AMD64, ARM64, ARMv7, Windows) - Automated publishing to GitHub Container Registry - Comprehensive testing for Raspberry Pi deployments * feat: Add Docker documentation and configuration tools - docs/DOCKER.md: Comprehensive Docker setup and usage guide - configure.sh: Interactive configuration script for deployment - Platform-specific setup instructions (macOS, Linux, Windows) - Raspberry Pi optimization guidelines - Environment variable configuration - Troubleshooting and best practices * docs: Update README with comprehensive Docker support - Add Docker Quick Start section with published images - Add comprehensive table of all available GHCR images - Include architecture-specific pull commands - Update manual installation instructions - Add platform-specific deployment examples - Document all supported architectures and use cases * chore: Update dependencies and project configuration - Update data/requirements.txt for Python 3.13 compatibility - Add v0.3.0 changelog entry documenting Docker support - Update .gitignore for Docker-related files - Prepare project for Docker deployment * feat: Update web interface for Denver Mesh Network - Update default configuration to center on Denver, Colorado - Set SITE_NAME to 'Denver Mesh Network' - Configure 915MHz frequency for US region - Update map center coordinates (39.7392, -104.9903) - Set appropriate node distance and Matrix room settings * Update Docker configuration and documentation - Remove Raspberry Pi specific Docker files and workflows - Update Docker workflow configuration - Consolidate Docker documentation - Add AGENTS.md for opencode integration - Update README with current project status * cleanup: workflow/readme * Update README.md Co-authored-by: l5y <220195275+l5yth@users.noreply.github.com> * Add .env.example and simplify documentation - Add comprehensive .env.example with all environment variables - Update web Dockerfile to use Berlin coordinates instead of Denver - Simplify README Docker quick start with helpful comments - Greatly simplify DOCKER.md with only essential information * cleanup: readme * Remove Stadia API key references - Remove STADIA_API_KEY from docker-compose.yml environment variables - Remove Stadia Maps configuration section from configure.sh - Remove Stadia API key references from .env.example - Simplify configuration to use basic OpenStreetMap tiles only * quickfix * cleanup: remove example usage from docker gh action output --------- Co-authored-by: l5y <220195275+l5yth@users.noreply.github.com>
8.9 KiB
8.9 KiB
CHANGELOG
v0.3.0
- Add comprehensive Docker support with multi-architecture builds and automated CI/CD by @trose in https://github.com/l5yth/potato-mesh/pull/122
v0.2.0
- Update readme for 0.2 by @l5yth in https://github.com/l5yth/potato-mesh/pull/118
- Add PotatoMesh logo to header and favicon by @l5yth in https://github.com/l5yth/potato-mesh/pull/117
- Harden API auth and request limits by @l5yth in https://github.com/l5yth/potato-mesh/pull/116
- Add client-side sorting to node table by @l5yth in https://github.com/l5yth/potato-mesh/pull/114
- Add short name overlay for node details by @l5yth in https://github.com/l5yth/potato-mesh/pull/111
- Adjust python ingestor interval to 60 seconds by @l5yth in https://github.com/l5yth/potato-mesh/pull/112
- Hide location columns on medium screens by @l5yth in https://github.com/l5yth/potato-mesh/pull/109
- Handle message updates based on sender info by @l5yth in https://github.com/l5yth/potato-mesh/pull/108
- Prioritize node posts in queued API updates by @l5yth in https://github.com/l5yth/potato-mesh/pull/107
- Add auto-refresh toggle to UI by @l5yth in https://github.com/l5yth/potato-mesh/pull/105
- Adjust Leaflet popup styling for dark mode by @l5yth in https://github.com/l5yth/potato-mesh/pull/104
- Add site info overlay by @l5yth in https://github.com/l5yth/potato-mesh/pull/103
- Add long name tooltip to short name badge by @l5yth in https://github.com/l5yth/potato-mesh/pull/102
- Ensure node numeric aliases are derived from canonical IDs by @l5yth in https://github.com/l5yth/potato-mesh/pull/101
- Chore: clean up repository by @l5yth in https://github.com/l5yth/potato-mesh/pull/96
- Handle SQLite busy errors when upserting nodes by @l5yth in https://github.com/l5yth/potato-mesh/pull/100
- Configure Sinatra logging level from DEBUG flag by @l5yth in https://github.com/l5yth/potato-mesh/pull/97
- Add penetration tests for authentication and SQL injection by @l5yth in https://github.com/l5yth/potato-mesh/pull/95
- Document Python and Ruby source modules by @l5yth in https://github.com/l5yth/potato-mesh/pull/94
- Add tests covering mesh helper edge cases by @l5yth in https://github.com/l5yth/potato-mesh/pull/93
- Fix py code cov by @l5yth in https://github.com/l5yth/potato-mesh/pull/92
- Add Codecov reporting to Python CI by @l5yth in https://github.com/l5yth/potato-mesh/pull/91
- Skip null identifiers when selecting packet fields by @l5yth in https://github.com/l5yth/potato-mesh/pull/88
- Create python yml ga by @l5yth in https://github.com/l5yth/potato-mesh/pull/90
- Add unit tests for mesh ingestor script by @l5yth in https://github.com/l5yth/potato-mesh/pull/89
- Add coverage for debug logging on messages without sender by @l5yth in https://github.com/l5yth/potato-mesh/pull/86
- Handle concurrent node snapshot updates by @l5yth in https://github.com/l5yth/potato-mesh/pull/85
- Fix ingestion mapping for message sender IDs by @l5yth in https://github.com/l5yth/potato-mesh/pull/84
- Add coverage for API authentication and payload edge cases by @l5yth in https://github.com/l5yth/potato-mesh/pull/83
- Add JUnit test reporting to Ruby CI by @l5yth in https://github.com/l5yth/potato-mesh/pull/82
- Configure SimpleCov reporting for Codecov by @l5yth in https://github.com/l5yth/potato-mesh/pull/81
- Update codecov job by @l5yth in https://github.com/l5yth/potato-mesh/pull/80
- Fix readme badges by @l5yth in https://github.com/l5yth/potato-mesh/pull/79
- Add Codecov upload step to Ruby workflow by @l5yth in https://github.com/l5yth/potato-mesh/pull/78
- Add Apache license headers to source files by @l5yth in https://github.com/l5yth/potato-mesh/pull/77
- Add integration specs for node and message APIs by @l5yth in https://github.com/l5yth/potato-mesh/pull/76
- Docs: update for 0.2.0 release by @l5yth in https://github.com/l5yth/potato-mesh/pull/75
- Create ruby workflow by @l5yth in https://github.com/l5yth/potato-mesh/pull/74
- Add RSpec smoke tests for app boot and database init by @l5yth in https://github.com/l5yth/potato-mesh/pull/73
- Align refresh controls with status text by @l5yth in https://github.com/l5yth/potato-mesh/pull/72
- Improve mobile layout by @l5yth in https://github.com/l5yth/potato-mesh/pull/68
- Normalize message sender IDs using node numbers by @l5yth in https://github.com/l5yth/potato-mesh/pull/67
- Style: condense node table by @l5yth in https://github.com/l5yth/potato-mesh/pull/65
- Log debug details for messages without sender by @l5yth in https://github.com/l5yth/potato-mesh/pull/64
- Fix nested dataclass serialization for node snapshots by @l5yth in https://github.com/l5yth/potato-mesh/pull/63
- Log node object on snapshot update failure by @l5yth in https://github.com/l5yth/potato-mesh/pull/62
- Initialize database on startup by @l5yth in https://github.com/l5yth/potato-mesh/pull/61
- Send mesh data to Potatomesh API by @l5yth in https://github.com/l5yth/potato-mesh/pull/60
- Convert boolean flags for SQLite binding by @l5yth in https://github.com/l5yth/potato-mesh/pull/59
- Use packet id as message primary key by @l5yth in https://github.com/l5yth/potato-mesh/pull/58
- Add message ingestion API and stricter auth by @l5yth in https://github.com/l5yth/potato-mesh/pull/56
- Feat: parameterize community info by @l5yth in https://github.com/l5yth/potato-mesh/pull/55
- Feat: add dark mode toggle by @l5yth in https://github.com/l5yth/potato-mesh/pull/54
v0.1.0
- Show daily node count in title and header by @l5yth in https://github.com/l5yth/potato-mesh/pull/49
- Add daily date separators to chat log by @l5yth in https://github.com/l5yth/potato-mesh/pull/47
- Feat: make frontend responsive for mobile by @l5yth in https://github.com/l5yth/potato-mesh/pull/46
- Harden mesh utilities by @l5yth in https://github.com/l5yth/potato-mesh/pull/45
- Filter out distant nodes from Berlin map view by @l5yth in https://github.com/l5yth/potato-mesh/pull/43
- Display filtered active node counts in #MediumFast subheading by @l5yth in https://github.com/l5yth/potato-mesh/pull/44
- Limit chat log and highlight short names by role by @l5yth in https://github.com/l5yth/potato-mesh/pull/42
- Fix string/integer comparison in node query by @l5yth in https://github.com/l5yth/potato-mesh/pull/40
- Escape chat message and node entries by @l5yth in https://github.com/l5yth/potato-mesh/pull/39
- Sort chat entries by timestamp by @l5yth in https://github.com/l5yth/potato-mesh/pull/38
- Feat: append messages to chat log by @l5yth in https://github.com/l5yth/potato-mesh/pull/36
- Normalize future timestamps for nodes by @l5yth in https://github.com/l5yth/potato-mesh/pull/35
- Optimize web frontend and Ruby app by @l5yth in https://github.com/l5yth/potato-mesh/pull/32
- Add messages API endpoint with node details by @l5yth in https://github.com/l5yth/potato-mesh/pull/33
- Clamp node timestamps and sync last_heard with position time by @l5yth in https://github.com/l5yth/potato-mesh/pull/31
- Refactor: replace deprecated utcfromtimestamp by @l5yth in https://github.com/l5yth/potato-mesh/pull/30
- Add optional debug logging for node and message operations by @l5yth in https://github.com/l5yth/potato-mesh/pull/29
- Data: enable serial collection of messages on channel 0 by @l5yth in https://github.com/l5yth/potato-mesh/pull/25
- Add first_heard timestamp by @l5yth in https://github.com/l5yth/potato-mesh/pull/23
- Add persistent footer with contact information by @l5yth in https://github.com/l5yth/potato-mesh/pull/22
- Sort initial chat entries by last-heard by @l5yth in https://github.com/l5yth/potato-mesh/pull/20
- Display position time in relative 'time ago' format by @l5yth in https://github.com/l5yth/potato-mesh/pull/19
- Adjust marker size and map tile opacity by @l5yth in https://github.com/l5yth/potato-mesh/pull/18
- Add chat box for node notifications by @l5yth in https://github.com/l5yth/potato-mesh/pull/17
- Color markers by role with grayscale map by @l5yth in https://github.com/l5yth/potato-mesh/pull/16
- Default missing node role to client by @l5yth in https://github.com/l5yth/potato-mesh/pull/15
- Show live node count in nodes page titles by @l5yth in https://github.com/l5yth/potato-mesh/pull/14
- Filter stale nodes and add live search by @l5yth in https://github.com/l5yth/potato-mesh/pull/13
- Remove raw node JSON column by @l5yth in https://github.com/l5yth/potato-mesh/pull/12
- Add JSON ingest API for node updates by @l5yth in https://github.com/l5yth/potato-mesh/pull/11
- Ignore Python pycache directories by @l5yth in https://github.com/l5yth/potato-mesh/pull/10
- Feat: load nodes from json for tests by @l5yth in https://github.com/l5yth/potato-mesh/pull/8
- Handle dataclass fields in node snapshots by @l5yth in https://github.com/l5yth/potato-mesh/pull/6
- Add index page and /nodes route for node map by @l5yth in https://github.com/l5yth/potato-mesh/pull/4