Skip to content

absmach/magistrala

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Magistrala

A Modern IoT Platform Built on SuperMQ

Scalable β€’ Secure β€’ Open-Source

Check License Header Continuous Delivery Go Report Card Ask DeepWiki Coverage License Matrix

Made with ❀️ by Abstract Machines

Introduction 🌍

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.

Key Benefits:

  • 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.

✨ Features

  • 🏒 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.

Installation πŸ› οΈ

There are multiple ways to run Magistrala. First, clone the repository and position to it:

git clone https://github.com/absmach/magistrala.git
cd magistrala

To run the latest stable (tagged) version, use:

# Run with latest stable tagged version
make run_stable

To run the latest version, use:

# Run with latest development version (from main branch)
make run_latest

The 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 main

πŸ“€ Usage

Using the CLI:

Check 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.

Using Curl:

Alternatively, use a simple HTTP GET request to check the platform's health:

curl -X GET http://localhost:8080/health

For additional usage examples and advanced configurations, visit the official documentation.

πŸ“š Documentation

Complete documentation is available at the Magistrala official docs page.

For CLI usage details, visit the CLI Documentation.

🌐 Community and Contributing

Join the community and contribute to the future of IoT middleware:

πŸ“œ License

Magistrala is open-source software licensed under the Apache-2.0 license. Contributions are welcome and encouraged!

πŸ’Ό Professional Support

Need help deploying Magistrala or integrating it into your systems? Contact Abstract Machines for expert guidance and support.