Magistrala
Magistrala是一个现代、可扩展、安全、开源且无专利的物联网云平台,使用Go语言编写。
它通过各种网络协议(如HTTP、MQTT、WebSocket、CoAP)接受用户和设备(传感器、执行器、应用程序)的连接,从而在它们之间建立无缝桥接。它被用作构建复杂物联网解决方案的中间件。
更多详细信息,请查看官方文档。 对于额外的功能和服务,请参阅我们的贡献仓库。
特性
- 多协议连接和桥接(HTTP、MQTT、WebSocket和CoAP;请参阅贡献仓库了解LoRa和OPC UA支持)
- 设备管理和配置(零接触配置)
- 使用X.509证书的双向TLS认证(mTLS)
- 细粒度访问控制(策略、ABAC/RBAC)
- 消息持久化(Timescale和PostgresSQL - 请参阅贡献仓库了解Cassandra、InfluxDB和MongoDB支持)
- 平台日志记录和仪表支持(Prometheus和OpenTelemetry)
- 事件溯源
- 基于容器的部署,使用Docker和Kubernetes
- 边缘代理和导出服务,用于远程物联网网关管理和边缘计算
- SDK
- CLI
- 小内存占用和快速执行
- 领域驱动设计架构,高质量代码和测试覆盖率
前提条件
运行Magistrala需要以下条件:
- Docker(版本26.0.0)
开发Magistrala还需要:
安装
安装好前提条件后,从项目根目录执行以下命令:
docker compose -f docker/docker-compose.yml --env-file docker/.env -p git_github_com_absmach_magistrala_git_ up
这将启动Magistrala的docker服务并将它们互连。也可以使用项目中包含的Makefile执行此命令:
make run
如果要运行特定版本的服务,请从GitHub检出代码并确保.env中的MG_RELEASE_TAG
与发布版本匹配
git checkout tags/<release_number> -b <release_number>
# 例如 `git checkout tags/0.13.0 -b 0.13.0`
检查.env
文件是否包含:
MG_RELEASE_TAG=<release_number>
docker-compose
应用于开发和测试部署。对于生产环境,我们建议使用Kubernetes。
使用
开始使用Magistrala的最快方法是通过CLI。最新版本可以从官方发布页面下载。
也可以从项目根目录构建和使用:
make cli
./build/cli version
使用CLI的更多详细信息可以在CLI文档中找到。
文档
官方文档托管在Magistrala官方文档页面。文档是自动生成的,请查看官方文档仓库的说明:
如果您发现错误或需要更正,请告诉我们 - 或更好的是:向我们发送PR。
作者
Magistrala项目的主要架构师和BDFL是@drasko。
此外,@nmarcetic和@janko-isidorovic确保了整体架构和设计,而@manuio和@darkodraskovic帮助制定了初始实现,并持续致力于项目的演进。
除此之外,Magistrala不断得到改进,并由@anovakovic01、@dusanb94、@srados、@gsaleh、@blokovi、@chombium、@mteodor、@rodneyosodo和一大群贡献者积极开发。
维护者列表在MAINTAINERS文件中。
Magistrala团队要特别感谢@mijicd在设计和实现高度改进和优化的平台版本方面所做的巨大工作,以及@malidukica在实现初始用户界面方面所做的努力。
专业支持
有许多公司为Magistrala系统提供专业支持。
如果您需要这种支持,最好直接联系@drasko,他会为您推荐最合适的支持团队。
贡献
感谢您对Magistrala的兴趣和贡献意愿!
- 查看我们的未解决问题。good-first-issue标签专门用于适合入门的问题。
- 查看贡献指南,了解更多关于我们的风格和约定。
- 使您的更改与我们的工作流程兼容。
此外,探索我们的贡献仓库,了解额外的服务,如Cassandra、InfluxDB、MongoDB读写器、LoRa、OPC UA支持、数字孪生等。如果您有不适合核心单体仓库的贡献(特定于您的用例、额外功能或新服务、可选或附加功能),这是提交拉取请求的好地方。
我们正在招聘
您喜欢Magistrala并希望将其作为日常工作吗?我们一直在寻找对开源、物联网和分布式系统感兴趣的优秀工程师。如果您认为自己符合条件,请联系@drasko - 他会回复您。
当然,吸引我们注意力的最好方式是发送PR :sunglasses:。
社区
许可证
Magistrala 的数据收集
Magistrala 致力于不断改进其服务,确保用户获得无缝体验。为实现这一目标,我们从您的部署中收集某些数据。请放心,这些数据仅用于改进 Magistrala,绝不会用于任何恶意目的。部署摘要可在我们的网站上查看。
收集的数据包括:
- IP 地址 - 用于获取部署的大致位置信息。
- 使用的服务 - 了解哪些功能受欢迎,以便优先考虑未来的开发。
- 最后活跃时间 - 确保 Magistrala 的稳定性和可用性。
- Magistrala 版本 - 跟踪软件版本并提供相关更新。
我们严肃对待您的隐私和数据安全。所有收集的数据都按照我们严格的隐私政策和行业最佳实践进行处理。
数据收集默认开启,可以通过设置环境变量来禁用:
MG_SEND_TELEMETRY=false
使用 Magistrala,您积极参与其改进。让我们携手共建一个更强大、更高效的物联网平台。感谢您对 Magistrala 的信任!