投稿来自 MeshCN 社区微信群组 成员 深圳南山-jinsu。谢谢 jinsu 的耐心整理和无私分享。
编者注惭愧惭愧,深圳南山-jinsu 大佬去年九月多已经写了这篇文章,但是一直忙于其他时间,没有时间整理发布,现在终于有时间整理发布,希望对大家有所帮助。
PotatoMesh 是一款“开箱可用”的 Meshtastic 可视化面板:打开浏览器就能看到节点列表、地图、邻居关系、消息与遥测,不需要搭建 MQTT,纯 LoRa 数据即可展示。它自带:
- Web 仪表盘:聊天窗口 + 地图视图,显示节点、邻居、消息、遥测与新节点提示。
- API:提供 GET/POST 接口,便于自定义应用或脚本接入。
- Python 摄取器:把本地 Meshtastic 节点(串口/TCP/BLE)采集的数据推送到 Web 端。
- 支持在多台节点间汇聚数据,让社区共享一张“全景网图”。
目前,社区群友主要使用群晖(Synology)、威联通(QNAP)、Unraid 、和飞牛(fnOS)的 NAS 系统。其中,Unraid 是一个按盘位收费的家用 NAS 系统,本文以 Unraid 为例进行讲解。
下方是把 PotatoMesh(Web + Python 摄取器)部署到 Unraid NAS 上的 Docker 的具体步骤。
一、部署 PotatoMesh Web
下载镜像
在 Unraid NAS 系统的 Docker 标签页中,点击“添加容器”,选择“自定义 URL”,输入 PotatoMesh Web 镜像地址:ghcr.io/l5yth/potato-mesh-web-linux-amd64:latest。
网络配置
- 默认主机网络:PotatoMesh 默认使用主机网络,无需端口映射。在 Unraid 的“网络类型”中选择 host,确保容器直接共享主机网络栈。
- 桥接网络(可选):如需桥接,自行映射端口。
环境变量(根据需求调整默认值)
在 Unraid 的“环境变量”部分添加:
SITE_NAME=Meshtastic Berlin
DEFAULT_CHANNEL=#MediumFast
DEFAULT_FREQUENCY=868MHz
MAP_CENTER_LAT=52.502889
MAP_CENTER_LON=13.404194 # 地图中心点经纬度
MAX_NODE_DISTANCE_KM=137
MATRIX_ROOM=#meshtastic-berlin:matrix.org
API_TOKEN=1eb140fd-cab4-40be-b862-41c607762246 # 替换为自定义 Token
二、部署 Python 摄取器
在 Unraid NAS 系统的 Docker 标签页中,点击“添加容器”,选择“自定义 URL”,输入 PotatoMesh ingestor 镜像地址:ghcr.io/l5yth/potato-mesh-ingestor-linux-amd64:latest。
环境变量与配置
在 Unraid 的“环境变量”中添加:
POTATOMESH_INSTANCE=http://<Unraid_IP>:41447 # 替换为 Unraid 主机 IP
API_TOKEN=1eb140fd-cab4-40be-b862-41c607762246 # 与 PotatoMesh Web 中设置的相同
MESH_SERIAL=/dev/ttyACM0 # 或远程设备 IP(如 192.168.1.20:4403)
DEBUG=1
设备映射(串口场景)
若通过串口连接 Meshtastic 节点,在 Unraid 的“设备映射”中添加:
- 主机设备:
/dev/ttyACM0 - 容器设备:
/dev/ttyACM0
三、验证与调试
- 检查服务状态:访问
http://<IP>:41447,确认 Web 应用界面加载正常。 - 查看容器日志:在 Unraid 的“日志”标签页检查是否有错误(如端口冲突、依赖缺失)。
- Python 摄取器调试:若数据未上传,检查
mesh.sh的日志输出,确认串口或 TCP 连接正常。
本文作者: 深圳南山-jinsu
本文链接: https://meshcn.net/deploy-potatomesh-on-unraid-docker/