version: '3.8' services: otbr: image: openthread/otbr:latest container_name: otbr restart: unless-stopped privileged: true network_mode: host devices: # Change /dev/ttyACM0 if your ESP32-H2 RCP enumerates as /dev/ttyUSB0 - /dev/ttyACM0:/dev/ttyACM0 command: --radio-url "spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800" mqtt-broker: image: eclipse-mosquitto:2.0 container_name: mqtt-broker restart: unless-stopped environment: MQTT_TLS_ENABLED: ${MQTT_TLS_ENABLED:-true} ports: # Listens on all interfaces (IPv4 and IPv6) for Thread compatibility - "8884:8884" volumes: - ./mqtt/mosquitto-tls.conf:/mosquitto/config/mosquitto-tls.conf:ro - ./mqtt/mosquitto-plain.conf:/mosquitto/config/mosquitto-plain.conf:ro - ./mqtt/start-broker.sh:/scripts/start-broker.sh:ro - ./mqtt/certs:/mosquitto/certs:ro - mqtt-data:/mosquitto/data - mqtt-log:/mosquitto/log command: ["/bin/sh", "/scripts/start-broker.sh"] volumes: mqtt-data: mqtt-log: