v2.0 · 生产可用

轻量级
多协议 IoT 网关

MQTT、UDP、WebSocket、FTP 四个独立服务器,可分开部署也可同进程启动。 纯 Python + asyncio,依赖全部为纯 Python,2 核 2G 小主机即可稳定承载设备接入、遥测上报与固件分发。

无编译型依赖
约 10MB 内存占用
Let's Encrypt 自动续期
4协议
MQTT · UDP · WS · FTP
9.8MB
空闲内存占用
2核 2G
推荐最低配置
100%
纯 Python 依赖
FEATURES

为小主机而生的网关内核

不引入消息队列、不引入数据库中间件,把四类设备接入能力收敛进一个 asyncio 进程。

协议网关

MQTT broker、UDP 数据报、WebSocket 推送三个独立服务器,可按需单独启动,也可在同一进程内统一编排。

amqtt · asyncio · websockets

固件 OTA

设备经 FTP 上传固件后自动归类到 esp / beken,生成 manifest 清单,官网与控制台随即对外提供下载。

pyftpdlib · manifest.json

极轻量

全部依赖均为纯 Python,无需编译工具链。2 核 2G 主机上空闲内存约 10MB,适合边缘机房与网关盒子。

Python 3.11 · asyncio

一键部署

Docker Compose 编排 + 部署脚本,本机或远程 SSH 一条命令拉起全部服务,证书由 certbot 自动续期。

docker compose · certbot
PROTOCOLS

协议与端口

默认端口可在 config/config.toml 中调整,或用环境变量 IOT_GATEWAY_<段>__<键> 覆盖。

网关各协议服务的端口与用途
服务传输层默认端口 状态用途
MQTTTCP1883 运行中 设备接入、遥测上报与指令下发
UDPUDP9000 运行中 低功耗设备高频上报
WebSocketTCP9001 运行中 Web 控制台实时数据推送
FTPTCP9021 运行中 固件上传(esp / beken 自动归类)
HTTP APIHTTP8080 运行中 控制台后端接口
QUICKSTART

三条命令拉起网关

推荐 Docker Compose 方式;也可用 systemd 直接跑源码,适合已有 Python 运行时的边缘主机。

1

拉取配置

复制 config/config.toml 并按需修改端口、FTP 账号与固件目录。

2

启动服务

一条 docker compose up -d 拉起 MQTT、UDP、WebSocket、FTP、API 与静态站六个容器。

3

放行端口并签证书

安全组放行 1883 / 9000 / 9001 / 9021 与 443,certbot 会自动申请并每日续期 Let's Encrypt 证书。

阅读完整部署文档
# 1. 获取代码与配置 git clone https://github.com/your-org/iot-gateway.git cd iot-gateway cp config/config.toml.example config/config.toml # 2. 编辑端口 / FTP 账号 / 固件目录 vim config/config.toml # 3. 一键启动 docker compose up -d # 4. 确认四个协议服务就绪 docker compose ps curl -s http://127.0.0.1:8080/healthz
FIRMWARE

固件下载

清单由 FTP 上传后自动生成,设备端可轮询 /firmware/manifest.json 判断是否有新版本。

manifest.json
可下载的固件版本列表
设备类型版本大小 SHA256发布时间下载

共 0 个版本 · 上传文件名约定 <type>_<version>.bin · 文件由设备经 FTP 上传自动发布

从一台 2 核 2G 的小主机开始

无需消息队列、无需编译工具链。把设备接进来,剩下的交给它。