mirror of
https://github.com/absmach/supermq.git
synced 2026-06-23 04:30:25 +00:00
@@ -4,65 +4,57 @@
|
|||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
# Magistrala
|
# SuperMQ
|
||||||
|
|
||||||
### A Modern IoT Platform Built on SuperMQ
|
### Planetary event-driven infrastructure
|
||||||
|
|
||||||
### Scalable • Secure • Open-Source
|
**Made with ❤️ by [Abstract Machines](https://absmach.eu/)**
|
||||||
|
|
||||||
[](https://github.com/absmach/magistrala/actions/workflows/check-license.yaml)
|
[](https://github.com/absmach/magistrala/actions/workflows/build.yaml)
|
||||||
[](https://github.com/absmach/magistrala/actions/workflows/build.yaml)
|
|
||||||
[](https://goreportcard.com/report/github.com/absmach/magistrala)
|
[](https://goreportcard.com/report/github.com/absmach/magistrala)
|
||||||
[](https://deepwiki.com/absmach/magistrala)
|
[](https://deepwiki.com/absmach/magistrala)
|
||||||
[](https://codecov.io/gh/absmach/magistrala)
|
[](https://github.com/absmach/magistrala/actions/workflows/check-license.yaml)
|
||||||
[](LICENSE)
|
[](https://github.com/absmach/magistrala/actions/workflows/check-generated-files.yaml)
|
||||||
[](https://matrix.to/#/#magistrala:matrix.org)
|
[](https://codecov.io/gh/absmach/magistrala)
|
||||||
|
[](LICENSE)
|
||||||
### [Guide](https://docs.magistrala.absmach.eu) | [Contributing](CONTRIBUTING.md) | [Website](https://www.absmach.eu/magistrala) | [Chat](https://matrix.to/#/#magistrala:matrix.org)
|
[](https://matrix.to/#/#supermq:matrix.org)
|
||||||
|
|
||||||
Made with ❤️ by [Abstract Machines](https://www.absmach.eu)
|
### [Guide](https://magistrala.absmach.eu/docs/) | [Contributing](CONTRIBUTING.md) | [Website](https://absmach.eu/) | [Chat](https://matrix.to/#/#supermq:matrix.org)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## Introduction 🌍
|
## Introduction 📖
|
||||||
|
|
||||||
Magistrala is a cutting-edge, open-source IoT cloud platform built on top of [SuperMQ](https://github.com/absmach/supermq). It serves as a robust middleware solution for building complex IoT applications. With Magistrala, you can connect and manage IoT devices seamlessly using multi-protocol support, all while ensuring security and scalability.
|
SuperMQ is a distributed, highly scalable, and secure open-source cloud platform for messaging and event-driven architecture (EDA). It is a planetarily distributed, highly scalable, and secure platform that serves as a robust foundation for building advanced real-time and reactive systems.
|
||||||
|
|
||||||
### Key Benefits
|
## Why SuperMQ Stands Out 🚀
|
||||||
|
|
||||||
- **Unified IoT Management**: Connect sensors, actuators and applications over various network protocols.
|
SuperMQ bridges the gap between various network protocols (HTTP, MQTT, WebSocket, CoAP, and more) to provide a seamless messaging experience. Whether you're working on IoT solutions, real-time data pipelines, or event-driven systems, MagisSuperMQtrala has you covered. 🌐✨
|
||||||
- **Scalability and Performance**: Designed to handle enterprise-grade IoT deployments.
|
|
||||||
- **Secure by Design**: Features such as mutual TLS authentication and fine-grained access control.
|
|
||||||
- **Open-Source Freedom**: Patent-free, community-driven, and designed for extensibility.
|
|
||||||
|
|
||||||
## ✨ Features
|
## Key Features 🌟
|
||||||
|
|
||||||
- 🏢 **Multi-Tenancy**: Support for managing multiple independent domains seamlessly.
|
- **Multi-Protocol Connectivity**: HTTP, MQTT, WebSocket, CoAP, and more! 🌉
|
||||||
- 👥 **Multi-User Platform**: Unlimited organizational hierarchies and user roles for streamlined collaboration.
|
- **Secure by Design**: Mutual TLS (mTLS) with X.509 Certificates, JWT support, and multi-protocol authorization. 🔒
|
||||||
- 🌐 **Multi-Protocol Connectivity**: HTTP, MQTT, WebSocket, CoAP, and more (see [contrib repository](https://www.github.com/absmach/mg-contrib) for LoRa and OPC UA).
|
- **Fine-Grained Access Control**: Support for ABAC and RBAC policies. 📜
|
||||||
- 💻 **Device Management and Provisioning**: Including Zero-Touch provisioning for seamless device onboarding.
|
- **Multi-Tenant**: Manage multiple domains seamlessly. 🏢
|
||||||
- 🛡️ **Mutual TLS Authentication (mTLS)**: Secure communication using X.509 certificates.
|
- **Multi-User**: Unlimited organizational hierarchies for user management. 👥
|
||||||
- 📜 **Fine-Grained Access Control**: Support for ABAC and RBAC policies.
|
- **Application Management**: Group and share messaging clients for streamlined operations. 📱
|
||||||
- 💾 **Message Persistence**: Timescale and PostgreSQL support (see [contrib repository](https://www.github.com/absmach/mg-contrib) for Cassandra, InfluxDB, and MongoDB).
|
- **Ease of Use**: Simple and powerful communication channel management, grouping, and sharing. ✨
|
||||||
- 🔄 **Rules Engine (RE)**: Automate processes with flexible rules for decision-making.
|
- **Personal Access Tokens (PATs)**: Scoped and revocable tokens for enhanced security. 🔑
|
||||||
- 🚨 **Alarms and Triggers**: Immediate notifications for critical IoT events.
|
- **Observability**: Integrated logging and instrumentation with Prometheus and OpenTelemetry. 📈
|
||||||
- 📅 **Scheduled Actions**: Plan and execute tasks at predefined times.
|
- **Event Sourcing**: Build robust and scalable architectures. ⚡
|
||||||
- 📝 **Audit Logs**: Maintain a detailed history of platform activities for compliance and debugging.
|
- **Edge and IoT Ready**: Supports MQTT and CoAP protocols for seamless IoT gateway and sensor communication and management. 🌍
|
||||||
- 📊 **Platform Logging and Instrumentation**: Integrated with Prometheus and OpenTelemetry.
|
- **Developer-Friendly**: SDKs, CLI tools, and comprehensive documentation to get you started. 👩💻👨💻
|
||||||
- ⚡ **Event Sourcing**: Streamlined architecture for real-time IoT event processing.
|
- **Production-Ready**: Container-based deployment using Docker and Kubernetes. 🐳☸️
|
||||||
- 🐳 **Container-Based Deployment**: Fully compatible with Docker and Kubernetes.
|
|
||||||
- 🌍 **Edge and IoT Ready**: Agent and Export services for managing remote IoT gateways.
|
|
||||||
- 🛠️ **Developer Tools**: Comprehensive SDK and CLI for efficient development.
|
|
||||||
- 🏗️ **Domain-Driven Design**: High-quality codebase and extensive test coverage.
|
|
||||||
|
|
||||||
## Installation 🛠️
|
## Installation 🛠️
|
||||||
|
|
||||||
There are multiple ways to run Magistrala.
|
There are multiple ways to run SuperMQ.
|
||||||
First, clone the repository and position to it:
|
First, clone the repository and position to it:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/absmach/magistrala.git
|
git clone https://github.com/absmach/supermq.git
|
||||||
cd magistrala
|
cd supermq
|
||||||
```
|
```
|
||||||
|
|
||||||
To run the latest stable (tagged) version, use:
|
To run the latest stable (tagged) version, use:
|
||||||
@@ -92,7 +84,7 @@ git checkout main
|
|||||||
|
|
||||||
### Running on Apple Silicon (M1/M2/M3) Macs
|
### Running on Apple Silicon (M1/M2/M3) Macs
|
||||||
|
|
||||||
When running Magistrala on Apple Silicon Macs, the Makefile will automatically detect your ARM64 architecture and build Docker images locally.
|
When running SuperMQ on Apple Silicon Macs, the Makefile will automatically detect your ARM64 architecture and build Docker images locally.
|
||||||
|
|
||||||
**If using Docker Desktop:**
|
**If using Docker Desktop:**
|
||||||
|
|
||||||
@@ -104,48 +96,62 @@ When running Magistrala on Apple Silicon Macs, the Makefile will automatically d
|
|||||||
|
|
||||||
After enabling these options, restart Docker Desktop, then run `make run_stable` or `make run_latest` as usual.
|
After enabling these options, restart Docker Desktop, then run `make run_stable` or `make run_latest` as usual.
|
||||||
|
|
||||||
|
To manually run SuperMQ, clone the repository and start all core services:
|
||||||
|
|
||||||
## 📤 Usage
|
```bash
|
||||||
|
docker compose -f docker/docker-compose.yaml --env-file docker/.env up
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage 📤📥
|
||||||
|
|
||||||
**Using the CLI :**
|
**Using the CLI :**
|
||||||
|
|
||||||
Check the health of a specific service using the CLI:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make cli
|
make cli
|
||||||
./build/cli health <service>
|
./build/supermq-cli status
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `<service>` with the name of the service you want to check.
|
This command retrieves the status of the SuperMQ server and outputs it to the console.
|
||||||
|
|
||||||
**Using Curl :**
|
**Using HTTP with Curl :**
|
||||||
|
|
||||||
Alternatively, use a simple HTTP `GET` request to check the platform's health:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X GET http://localhost:8080/health
|
curl -X GET http://localhost:8080/status
|
||||||
```
|
```
|
||||||
|
|
||||||
For additional usage examples and advanced configurations, visit the [official documentation](https://docs.magistrala.absmach.eu).
|
This request fetches the server status over HTTP and provides a JSON response.
|
||||||
|
|
||||||
## 📚 Documentation
|
See our [CLI documentation](https://magistrala.absmach.eu/docs/dev-guide/cli/introduction-to-cli/) for more details.
|
||||||
|
|
||||||
Complete documentation is available at the [Magistrala official docs page](https://docs.magistrala.absmach.eu).
|
## Documentation 📚
|
||||||
|
|
||||||
For CLI usage details, visit the [CLI Documentation](https://docs.magistrala.absmach.eu/dev-guide/cli/introduction-to-cli).
|
The official documentation is hosted at [SuperMQ docs page](https://magistrala.absmach.eu/docs/).
|
||||||
|
|
||||||
## 🌐 Community and Contributing
|
Documentation is auto-generated, check out the instructions in the [docs repository](https://github.com/absmach/magistrala-website).
|
||||||
|
If you spot an error or a need for corrections, please let us know - or even better: send us a PR! 💌
|
||||||
|
|
||||||
Join the community and contribute to the future of IoT middleware:
|
## Community and Contributing 🤝
|
||||||
|
|
||||||
- [Open Issues](https://github.com/absmach/magistrala/issues)
|
Thank you for your interest in SuperMQ and the desire to contribute!
|
||||||
- [Contribution Guide](CONTRIBUTING.md)
|
|
||||||
- [Matrix Chat](https://matrix.to/#/#magistrala:matrix.org)
|
|
||||||
|
|
||||||
## 📜 License
|
1. Take a look at our [open issues](https://github.com/absmach/magistrala/issues). The [good-first-issue](https://github.com/absmach/magistrala/labels/good-first-issue) label is specifically for issues that are great for getting started.
|
||||||
|
2. Checkout the [contribution guide](CONTRIBUTING.md) to learn more about our style and conventions.
|
||||||
|
3. Make your changes compatible to our workflow.
|
||||||
|
|
||||||
Magistrala is open-source software licensed under the [Apache-2.0](LICENSE) license. Contributions are welcome and encouraged!
|
Join our community:
|
||||||
|
|
||||||
## 💼 Professional Support
|
- [Matrix Room](https://matrix.to/#/#supermq\:matrix.org)
|
||||||
|
|
||||||
Need help deploying Magistrala or integrating it into your systems? Contact **[Abstract Machines](https://www.absmach.eu)** for expert guidance and support.
|
## Professional Support 💼
|
||||||
|
|
||||||
|
Need help deploying SuperMQ or integrating it into your system? Reach out to **[Abstract Machines](https://absmach.eu/)** for professional support and guidance.
|
||||||
|
|
||||||
|
## License 📜
|
||||||
|
|
||||||
|
SuperMQ is open-source software licensed under the [Apache License 2.0](LICENSE). Contributions are welcome!
|
||||||
|
|
||||||
|
## Acknowledgments 🙌
|
||||||
|
|
||||||
|
Special thanks to the amazing contributors who make SuperMQ possible. Check out the [MAINTAINERS](MAINTAINERS) file to see the team behind the magic.
|
||||||
|
|
||||||
|
Ready to build the future of messaging and event-driven systems? Let's get started! 🚀
|
||||||
|
|||||||
Reference in New Issue
Block a user