
migoller/http-mqtt-bridgemigoller/http-mqtt-bridge 是一个轻量级的 HTTP 到 MQTT 桥接工具,用于将 HTTP 请求转换为 MQTT 消息并转发至指定的 MQTT Broker。该工具最初设计用于解决 IFTTT(不原生支持 MQTT 服务)与 OpenHab 等智能家居系统的集成问题,通过接收 IFTTT Maker Webhooks 等 HTTP 请求,实现与 MQTT 设备/服务的通信。
镜像通过以下环境变量配置核心参数,必须根据实际需求设置:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
AUTH_KEY | 用于验证 HTTP 请求的密钥(必填,建议使用高强度随机字符串) | 912ec803b2ce49e4a541068d495ab570 |
MQTT_HOST | MQTT Broker 地址(需包含协议、主机和端口,必填) | mqtts://k99.cloudmqtt.com:21234 |
MQTT_USER | MQTT Broker 认证用户名(若 Broker 启用认证则必填) | mqtt_user123 |
MQTT_PASS | MQTT Broker 认证密码(若 Broker 启用认证则必填) | mqtt_pass456 |
默认监听容器内 5000 端口,连接本地 MQTT Broker(实际使用需通过环境变量指定远程 Broker):
bashdocker run -d -p 5000:5000 migoller/http-mqtt-bridge
指定 MQTT Broker 连接参数及认证密钥:
bashdocker run -d \ -p 5000:5000 \ -e AUTH_KEY=912ec803b2ce49e4a541068d495ab570 \ # 替换为自定义密钥 -e MQTT_HOST=mqtts://k99.cloudmqtt.com:21234 \ # 替换为实际 MQTT Broker 地址 -e MQTT_USER=<你的用户名> \ # 替换为 MQTT 用户名 -e MQTT_PASS=<你的密码> \ # 替换为 MQTT 密码 migoller/http-mqtt-bridge
容器启动后,可通过 HTTP POST 请求向 MQTT 主题发布消息,支持两种方式:
发送包含 topic(目标 MQTT 主题)和 message(消息内容)的 JSON 数据:
bashcurl -H "Content-Type: application/json" \ "http://<Docker主机IP>:5000/post" \ -d '{"topic": "MyTopic", "message": "Hello World"}'
响应:成功时返回 OK。
通过 URL 参数 topic 指定目标主题,path 指定消息内容,适用于动态构建 URL 的场景:
http://<Docker主机IP>:5000/post?topic=/MyTopic/TestTopic&path=payload
topic:目标 MQTT 主题(如 /MyTopic/TestTopic)。path:消息内容(如 payload)。为保障传输安全,建议通过反向代理实现 HTTPS 加密。推荐使用以下容器组合:
具体配置请参考上述项目官方文档,通过设置 VIRTUAL_HOST、LETSENCRYPT_HOST 等环境变量实现 HTTP 到 HTTPS 的转发。
本项目基于 petkov 的 HTTP to MQTT bridge(Node.js 实现)开发,感谢原作者提供的核心代码。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务