magistrala

用 Go 快速搭建可扩展的物联网平台,搞定设备接入与数据管理。

Magistrala 是一个用 Go 语言构建的开源物联网平台框架,原名 Mainflux。它旨在为工业物联网(IIoT)、边缘计算和智能设备提供一套灵活、可扩展的基础设施,解决设备接入、数据管理、消息路由和系统集成等核心问题。其核心能力包括:支持多种通信协议(MQTT、CoAP、HTTP、WebSocket 等),提供设备管理、用户认证、授权、数据持久化、规则引擎和事件日志等功能。平台采用微服务架构,模块化设计,易于定制和扩展,可部署在云端或边缘节点。Magistrala 强调系统解耦,通过消息代理(如 NATS)实现服务间异步通信,支持水平扩展,适合构建从原型到生产级的物联网解决方案。

开源 unknown 行业应用
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2642
维护状态 活跃
是否开源 是
定价模式 unknown

项目数据

分类行业应用
开发团队absmach
所属国家
定价模式unknown
价格说明定价信息待确认
访问状态
是否开源是
开源协议Apache-2.0
主要语言Go
技术栈/模型coap,distributed-systems,edge,edge-computing,golang,iiot,internet-of-things,iot,iot-cloud,iot-gateway,iot-platform,lora,lorawan,lwm2m,message-broker,messaging,mqtt,opc-ua,telecom,web-socket
GitHub 星标★ 2642
30天Star增速
HF 下载量
上线时间2015-07-06 00:00:00
最近更新2026-09-24 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-12
浏览次数8

使用教程

难度:入门 约 10 分钟 部署方式:Docker 7 步

环境要求

  • Git(用于克隆仓库)
  • Docker 与 Docker Compose(make run_latest 通过 Docker Compose 拉起全栈)
  • make 构建工具
  • Go 环境(执行 make cli 构建 CLI)
  • 可用的终端(bash)

安装与启动步骤

  1. 1克隆仓库

    从 GitHub 拉取 magistrala 源码到本地,确保网络可访问 github.com。

    git clone https://github.com/absmach/magistrala.git
  2. 2进入项目目录

    后续所有 make 命令都要在仓库根目录执行。

    cd magistrala
  3. 3准备 Atom 令牌

    全新克隆不含生成的密钥。make run_latest 会自行生成证书与密钥,但要求 Atom 服务令牌提前存在,所以令牌步骤必须在启动前完成。README 未给出生成命令,请参照官网文档准备。

  4. 4启动全栈

    通过 Docker Compose 拉起消息、身份认证及全部核心服务,首次会拉取镜像,耗时较长。

    make run_latest
  5. 5构建 CLI

    编译出 ./build/cli 命令行客户端,用于后续登录和查询。

    make cli
  6. 6登录管理员

    使用默认本地管理员账号 admin 登录,密码为 12345678(仅本地环境示例)。

    ./build/cli login admin 12345678
  7. 7验证工作区列表

    带上管理员令牌列出工作区,命令能返回数据说明平台已可用。

    ./build/cli --token "$ATOM_ADMIN_TOKEN" workspaces list

关键配置

配置项必填说明示例
ATOM_URL是Atom 服务地址,CLI 与服务共用该变量https://your-atom-host
ATOM_SERVICE_TOKEN是各服务向 Atom 出示的服务令牌,启动前必须已存在your-atom-service-token
ATOM_ADMIN_TOKEN是CLI 执行管理类命令时使用的管理员令牌your-atom-admin-token
MG_CLI_ATOM_TIMEOUT否CLI 请求超时设置,交互模式默认 90 秒90s

如何确认成功

make run_latest 成功拉起全栈后,执行 ./build/cli --token "$ATOM_ADMIN_TOKEN" workspaces list 能返回工作区列表即表示可用。

常见问题

Q:启动时报缺少密钥或令牌怎么办?

A:全新克隆不携带任何生成的密钥。证书与密钥由 make run_latest 自行生成,但 Atom 服务令牌需要提前准备好,因此令牌步骤要放在启动之前。

Q:CLI 需要额外指定端点或令牌参数吗?

A:不需要。CLI 读取与服务相同的 ATOM_URL 和 ATOM_SERVICE_TOKEN/ATOM_ADMIN_TOKEN,只要 shell 已 source docker/.env 即可直接使用。

Q:启动后如何接入设备?

A:参考官方文档:创建设备后通过 MQTT、HTTP、CoAP 或 WebSocket 接入,然后创建通道开始发布和订阅消息。

Q:能否部署到 Kubernetes 或边缘节点?

A:可以。平台是容器原生的,支持 Docker 与 Kubernetes,面向云、边缘和混合部署,可从中小规模扩展到生产环境。

注意事项

  • 全新克隆不含生成的密钥,必须先准备好 Atom 服务令牌,否则全栈无法启动。
  • README 未给出令牌生成命令和具体端口,相关细节请查阅官网文档。
  • admin/12345678 是 README 示例中的本地登录信息,正式环境务必更换。
  • CLI 交互超时默认 90 秒,可通过 MG_CLI_ATOM_TIMEOUT 调整。

核心亮点

  • 多协议接入,原生支持 MQTT、CoAP、HTTP、WebSocket,适配各种设备
  • 微服务架构,模块解耦,方便按需扩展和定制
  • 内置认证、授权和租户管理,适合多用户场景

不足之处

  • 学习曲线较陡,微服务架构和配置相对复杂
  • 文档/社区待观察,部分高级功能示例不够丰富

适用场景

  • 工业设备远程监控与数据采集
  • 智慧城市中的传感器网络管理
  • 边缘网关的数据聚合与转发

替代项目

ThingsBoard、Kaa IoT Platform、Eclipse Kura

项目介绍

magistrala 是行业应用领域的开源项目,由 absmach 开发,2015 年首次发布。

在全站 13,148 个收录项目中,它的 GitHub 星标数(2,642)位列前 30%,在行业应用分类的 547 个项目里位列前 11%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-24。

它主要面向的使用场景是:工业设备远程监控与数据采集。同类可对比的替代方案包括 ThingsBoard、Kaa IoT Platform、Eclipse Kura。

上一篇:keep

下一篇:chirpstack

同类项目推荐

xmgai-like 开源

换脸、艺术二维码随手玩,副业灵感一包带走。

本开源 AI 副业搞钱项目集成了强大功能,包括 AI 艺术二维码生成、AI 换脸、Delle3 绘画等···

★ 60 2026-08-09
spoken-to-signed-translation 开源

把口语文本一路转成手语视频的流水线

a text-to-gloss-to-pose-to-video pipeline for spoken to signed language translation

★ 102 2026-09-11