- Caddy reverse proxies :80/:443 → Node :3000 - Mount custom Caddyfile for your domain → auto Let's Encrypt TLS - Caddy certs persisted in /data/caddy volume - Ports: 80 (HTTP), 443 (HTTPS), 1883 (MQTT)
- Dockerfile: Alpine + Node 22 + Mosquitto + supervisord - Auto-copies config.example.json if no config.json mounted - Named volume for data persistence (SQLite + Mosquitto) - Ports: 3000 (web), 1883 (MQTT) - .dockerignore excludes data, config, git, benchmarks - README updated with Docker quickstart