forked from iarv/potato-mesh
* 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>
72 lines
2.1 KiB
Plaintext
72 lines
2.1 KiB
Plaintext
# PotatoMesh Environment Configuration
|
|
# Copy this file to .env and customize for your setup
|
|
|
|
# =============================================================================
|
|
# REQUIRED SETTINGS
|
|
# =============================================================================
|
|
|
|
# API authentication token (required for ingestor communication)
|
|
# Generate a secure token: openssl rand -hex 32
|
|
API_TOKEN=your-secure-api-token-here
|
|
|
|
# Meshtastic device path (required for ingestor)
|
|
# Common paths:
|
|
# - Linux: /dev/ttyACM0, /dev/ttyUSB0
|
|
# - macOS: /dev/cu.usbserial-*
|
|
# - Windows (WSL): /dev/ttyS*
|
|
MESH_SERIAL=/dev/ttyACM0
|
|
|
|
# =============================================================================
|
|
# SITE CUSTOMIZATION
|
|
# =============================================================================
|
|
|
|
# Your mesh network name
|
|
SITE_NAME=My Meshtastic Network
|
|
|
|
# Default Meshtastic channel
|
|
DEFAULT_CHANNEL=#MediumFast
|
|
|
|
# Default frequency for your region
|
|
# Common frequencies: 868MHz (Europe), 915MHz (US), 433MHz (Worldwide)
|
|
DEFAULT_FREQUENCY=868MHz
|
|
|
|
# Map center coordinates (latitude, longitude)
|
|
# Berlin, Germany: 52.502889, 13.404194
|
|
# Denver, Colorado: 39.7392, -104.9903
|
|
# London, UK: 51.5074, -0.1278
|
|
MAP_CENTER_LAT=52.502889
|
|
MAP_CENTER_LON=13.404194
|
|
|
|
# Maximum distance to show nodes (kilometers)
|
|
MAX_NODE_DISTANCE_KM=50
|
|
|
|
# =============================================================================
|
|
# OPTIONAL INTEGRATIONS
|
|
# =============================================================================
|
|
|
|
# Matrix chat room for your community (optional)
|
|
# Format: !roomid:matrix.org
|
|
MATRIX_ROOM='#meshtastic-berlin:matrix.org'
|
|
|
|
|
|
# =============================================================================
|
|
# ADVANCED SETTINGS
|
|
# =============================================================================
|
|
|
|
# Debug mode (0=off, 1=on)
|
|
DEBUG=0
|
|
|
|
# Meshtastic snapshot interval (seconds)
|
|
MESH_SNAPSHOT_SECS=60
|
|
|
|
# Meshtastic channel index (0=primary, 1=secondary, etc.)
|
|
MESH_CHANNEL_INDEX=0
|
|
|
|
# Database settings
|
|
DB_BUSY_TIMEOUT_MS=5000
|
|
DB_BUSY_MAX_RETRIES=5
|
|
DB_BUSY_RETRY_DELAY=0.05
|
|
|
|
# Application settings
|
|
MAX_JSON_BODY_BYTES=1048576
|