mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-03-28 17:42:45 +01:00
Major documentation update with new data structure: Breaking Changes: - Data storage moved from host directories to ./data/ inside project - MC_CONFIG_DIR default changed: /root/.config/meshcore → ./data/meshcore - MC_ARCHIVE_DIR default changed: /mnt/archive/meshcore → ./data/archive - Requires migration for existing installations (see MIGRATION.md) Documentation: - Add MIGRATION.md - step-by-step guide for existing users - Add FRESH_INSTALL.md - complete installation guide for new users - Update README.md - new Configuration section with ./data/ structure - Update .env.example - placeholders instead of real values, new defaults - Update .claude/CLAUDE.md - updated environment variables documentation - Change serial device detection from 'ls -l' to 'ls' (cleaner output) Code Cleanup: - Remove deprecated MC_REFRESH_INTERVAL variable (unused since intelligent refresh) - Remove MC_REFRESH_INTERVAL from app/config.py - Remove refresh_interval from app/routes/views.py (5 functions) - Remove refresh_interval from app/routes/api.py - Remove refreshInterval from app/templates/index.html - Remove refreshInterval from app/templates/dm.html - Remove MC_REFRESH_INTERVAL from docker-compose.yml Configuration: - Update .gitignore - exclude data/ and docs/github-discussion-*.md - Serial port: use /dev/serial/by-id/[YOUR_DEVICE_ID] placeholder - Device name: use [YOUR_DEVICE_NAME] placeholder Benefits: - All project data in one location (easier backups) - Better portability (no host dependencies) - Cleaner codebase (removed unused variables) - Comprehensive documentation for migration and fresh install 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
68 lines
2.0 KiB
YAML
68 lines
2.0 KiB
YAML
services:
|
|
# MeshCore Bridge - Handles USB communication with meshcli
|
|
meshcore-bridge:
|
|
build:
|
|
context: ./meshcore-bridge
|
|
dockerfile: Dockerfile
|
|
container_name: meshcore-bridge
|
|
restart: unless-stopped
|
|
devices:
|
|
- "${MC_SERIAL_PORT}:${MC_SERIAL_PORT}"
|
|
volumes:
|
|
- "${MC_CONFIG_DIR}:/root/.config/meshcore:rw"
|
|
environment:
|
|
- MC_SERIAL_PORT=${MC_SERIAL_PORT}
|
|
- MC_CONFIG_DIR=/root/.config/meshcore
|
|
- MC_DEVICE_NAME=${MC_DEVICE_NAME}
|
|
- TZ=${TZ:-UTC}
|
|
networks:
|
|
- meshcore-net
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5001/health')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
# Main Web UI - Communicates with bridge via HTTP
|
|
mc-webui:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: mc-webui
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${FLASK_PORT:-5000}:5000"
|
|
volumes:
|
|
- "${MC_CONFIG_DIR}:/root/.config/meshcore:rw"
|
|
- "${MC_ARCHIVE_DIR:-./archive}:/root/.archive/meshcore:rw"
|
|
environment:
|
|
- MC_BRIDGE_URL=http://meshcore-bridge:5001/cli
|
|
- MC_DEVICE_NAME=${MC_DEVICE_NAME}
|
|
- MC_CONFIG_DIR=/root/.config/meshcore
|
|
- MC_INACTIVE_HOURS=${MC_INACTIVE_HOURS:-48}
|
|
- MC_ARCHIVE_DIR=/root/.archive/meshcore
|
|
- MC_ARCHIVE_ENABLED=${MC_ARCHIVE_ENABLED:-true}
|
|
- MC_ARCHIVE_RETENTION_DAYS=${MC_ARCHIVE_RETENTION_DAYS:-7}
|
|
- FLASK_HOST=${FLASK_HOST:-0.0.0.0}
|
|
- FLASK_PORT=${FLASK_PORT:-5000}
|
|
- FLASK_DEBUG=${FLASK_DEBUG:-false}
|
|
- TZ=${TZ:-UTC}
|
|
env_file:
|
|
- .env
|
|
depends_on:
|
|
meshcore-bridge:
|
|
condition: service_healthy
|
|
networks:
|
|
- meshcore-net
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5000/api/status')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
networks:
|
|
meshcore-net:
|
|
driver: bridge
|