A Modern IoT Platform Built on SuperMQ
Scalable β’ Secure β’ Open-Source
Guide | Contributing | Website | Chat
Made with β€οΈ by Abstract Machines
Magistrala is a cutting-edge, open-source IoT cloud platform built on top of 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.
- Unified IoT Management: Connect sensors, actuators, and applications over various network protocols.
- 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.
- π’ Multi-Tenancy: Support for managing multiple independent domains seamlessly.
- π₯ Multi-User Platform: Unlimited organizational hierarchies and user roles for streamlined collaboration.
- π Multi-Protocol Connectivity: HTTP, MQTT, WebSocket, CoAP, and more (see contrib repository for LoRa and OPC UA).
- π» Device Management and Provisioning: Including Zero-Touch provisioning for seamless device onboarding.
- π‘οΈ Mutual TLS Authentication (mTLS): Secure communication using X.509 certificates.
- π Fine-Grained Access Control: Support for ABAC and RBAC policies.
- πΎ Message Persistence: Timescale and PostgreSQL support (see contrib repository for Cassandra, InfluxDB, and MongoDB).
- π Rules Engine (RE): Automate processes with flexible rules for decision-making.
- π¨ Alarms and Triggers: Immediate notifications for critical IoT events.
- π Scheduled Actions: Plan and execute tasks at predefined times.
- π Audit Logs: Maintain a detailed history of platform activities for compliance and debugging.
- π Platform Logging and Instrumentation: Integrated with Prometheus and OpenTelemetry.
- β‘ Event Sourcing: Streamlined architecture for real-time IoT event processing.
- π³ 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.
There are multiple ways to run Magistrala. First, clone the repository and position to it:
git clone https://github.com/absmach/magistrala.git
cd magistralaTo run the latest stable (tagged) version, use:
# Run with latest stable tagged version
make run_stableTo run the latest version, use:
# Run with latest development version (from main branch)
make run_latestThe make run_stable command will:
- Checkout the repository to the latest git tag
- Update the version in the environment configuration
- Start the services with the stable release
Note: After running make run_stable, you'll be on a detached HEAD state. To return to your working branch:
git checkout mainCheck the health of a specific service using the CLI:
make cli
./build/cli health <service>Replace <service> with the name of the service you want to check.
Alternatively, use a simple HTTP GET request to check the platform's health:
curl -X GET http://localhost:8080/healthFor additional usage examples and advanced configurations, visit the official documentation.
Complete documentation is available at the Magistrala official docs page.
For CLI usage details, visit the CLI Documentation.
Join the community and contribute to the future of IoT middleware:
Magistrala is open-source software licensed under the Apache-2.0 license. Contributions are welcome and encouraged!
Need help deploying Magistrala or integrating it into your systems? Contact Abstract Machines for expert guidance and support.