Skip to content

Add Docker containerization support#25

Open
cj-vana wants to merge 4 commits into
agessaman:mainfrom
cj-vana:docker-support
Open

Add Docker containerization support#25
cj-vana wants to merge 4 commits into
agessaman:mainfrom
cj-vana:docker-support

Conversation

@cj-vana

@cj-vana cj-vana commented Jan 1, 2026

Copy link
Copy Markdown

Summary

  • Add Dockerfile with multi-stage Python 3.11 build
  • Add docker-compose.yml with environment variable configuration
  • Add docker-compose.standalone.yml for Portainer/NAS deployment
  • Add docker/entrypoint.sh for config initialization
  • Add .dockerignore for build optimization
  • Add DOCKER.md with complete deployment documentation
  • Update README.md with Docker installation instructions
  • Add cryptography to requirements.txt for alert_command plugin

Features

  • Connection Types: Serial (USB), TCP, and BLE support
  • Environment Variables: Override config.ini settings via environment
  • Web Viewer: Exposed on configurable port (default 8080)
  • Health Check: Python-based health check for container monitoring
  • Portainer Ready: Standalone compose file for easy deployment

Test Plan

  • Build Docker image successfully
  • Container starts and connects to MeshCore device via serial
  • Web viewer accessible on configured port
  • Health check reports healthy status
  • Environment variable overrides work correctly

cj-vana and others added 4 commits December 31, 2025 17:10
- Add Dockerfile with multi-stage Python 3.11 build
- Add docker-compose.yml with environment variable configuration
- Add docker-compose.standalone.yml for Portainer/NAS deployment
- Add docker/entrypoint.sh for config initialization
- Add .dockerignore for build optimization
- Add DOCKER.md with complete deployment documentation
- Update README.md with Docker installation instructions
- Add cryptography to requirements.txt for alert_command plugin

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The pgrep command is not available in the slim Python container.
Changed healthcheck to use Python urllib to check web viewer availability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@agessaman

Copy link
Copy Markdown
Owner

Hi. Thanks for this. Docker support and a pre-built docker image is something I want to add. I'd like to get #23 merged first so the docker container is built against the new structure using the proper entry points and the docker container can take advantage of the --config parameter.

@cj-vana

cj-vana commented Jan 1, 2026

Copy link
Copy Markdown
Author

Hi. Thanks for this. Docker support and a pre-built docker image is something I want to add. I'd like to get #23 merged first so the docker container is built against the new structure using the proper entry points and the docker container can take advantage of the --config parameter.

Sounds good! Let me know if you need me to do any refactoring once that is done.

@tbaumann

tbaumann commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Nix support is merged. Some of it should help you a lot.

@smithpl2000

smithpl2000 commented Feb 2, 2026

Copy link
Copy Markdown

Is anything to help ? I can add portainer, traefik as publisher with authorization for Web server
I've made my own implementation
meshcore-bot as container on my Synology NAS with docker engine and meshcore node by BLE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants